我有一个如下所示的数据集:
我想合并这两个数据集。我怎样才能做到这一点。我不能使用 rbind
,因为 df 有更多变量。
可以使用代码构建示例数据:
df<-structure(list(ID = c(1, 2, 3), High = c(25, 36, 75), weight = c(38,
58, 36), date = c(1, 1, 1)), row.names = c(NA, -3L), class = c("tbl_df",
"tbl", "data.frame"))
df2<-structure(list(ID = c(1, 2, 3, 1, 2, 3), weight = c(69, 58, 35,
65, 24, 15), date = c(3, 3, 3, 2, 2, 2)), row.names = c(NA, -6L
), class = c("tbl_df", "tbl", "data.frame"))
答案 0 :(得分:2)
如果您的数据集很大,请尝试使用 data.table 包进行此类操作。如果您想了解更多信息,Here 是一个小插图。
这是使用 data.table 包的代码:
library(data.table)
setDT(df)
setDT(df2)
result<-rbindlist(list(df,df2),fill=T)
请注意,允许行不同的关键参数是 fill=TRUE
答案 1 :(得分:1)
您可以使用 bind_rows()
中的 dplyr
:
df1 <- tibble::tribble(
~ID, ~High, ~weight, ~date,
1, 25, 38, 1,
2, 36, 58, 1,
3, 75, 36, 1
)
df2 <- tibble::tribble(
~ID, ~weight, ~date,
1, 69, 3,
2, 58, 3,
3, 35, 3,
1, 65, 2,
2, 24, 2,
3, 15, 2
)
bind_rows(df1, df2)
# # A tibble: 9 x 4
# ID High weight date
# <dbl> <dbl> <dbl> <dbl>
# 1 1 25 38 1
# 2 2 36 58 1
# 3 3 75 36 1
# 4 1 NA 69 3
# 5 2 NA 58 3
# 6 3 NA 35 3
# 7 1 NA 65 2
# 8 2 NA 24 2
# 9 3 NA 15 2
答案 2 :(得分:1)
这是您预期的输出吗?
> merge(df1, df2, all = TRUE)
ID weight date High
1 1 38 1 25
2 1 65 2 NA
3 1 69 3 NA
4 2 24 2 NA
5 2 58 1 36
6 2 58 3 NA
7 3 15 2 NA
8 3 35 3 NA
9 3 36 1 75