这两个命令是do.call(rbind, dfs) 和do.call(cbind, dfs) 的代替,使用起来更有效率。
one <- starwars[1:4, ]
two <- starwars[9:12, ]
bind_rows(one, two)
bind_rows(list(one, two)) # a list of dataframes
bind_rows(list(one, two), list(two, one))
bind_rows(split(starwars, starwars$homeworld))
其中split(starwars, starwars$homeworld) 得到的是一个list的dataframes,每个list元素中包含的dataframes数量不同,根据homeworld进行了split。
输入也可以是vecotr
bind_rows(
c(a = 1, b = 2),
c(a = 3, b = 4)
)
bind_rows(
c(a = 1, b = 2),
tibble(a = 3:4, b = 5:6),
c(a = 7, b = 8)
)
可以设置.id 参数用于区分dataframe来源
bind_rows(list(one, two), .id = "id")
bind_rows(list(a = one, b = two), .id = "id")
bind_rows("group 1" = one, "group 2" = two, .id = "groups")
bind_cols 比bind_rows 简单,不需要考虑匹配问题。
|
请发表评论