我有2个数据表,一个用于:
X1 X2 X3 X4
1 ClaimIDs ClaimIDs ClaimIDs ClaimIDs
2 427 419 399 399
和另一个
row.names X1 X2 X3 X4
1 3852 0 0 0 20
2 3853 0 0 0 8
3 3854 0 0 0 10
我想这样看起来像这样:
row.names X1 X2 X3 X4
1 NA ClaimIDs ClaimIDs ClaimIDs ClaimIDs
2 NA 427 419 399 399
3 3852 0 0 0 20
4 3853 0 0 0 8
5 3854 0 0 0 10
我已经尝试了从r和c绑定到smartbind的所有内容,甚至使用了列表变量。它总是输出有太多列填充NA或没有添加3852,3853,3854到正确的位置。任何帮助是极大的赞赏!我可以提供解决此问题所需的任何代码。
答案 0 :(得分:3)
尝试merge
merge(df1, df2, by=names(df1), all=TRUE)
# X1 X2 X3 X4 row.names
#1 0 0 0 10 3854
#2 0 0 0 20 3852
#3 0 0 0 8 3853
#4 427 419 399 399 NA
#5 ClaimIDs ClaimIDs ClaimIDs ClaimIDs NA
或者
library(data.table)
rbindlist(list(df1, df2), fill=TRUE)
# X1 X2 X3 X4 row.names
#1: ClaimIDs ClaimIDs ClaimIDs ClaimIDs NA
#2: 427 419 399 399 NA
#3: 0 0 0 20 3852
#4: 0 0 0 8 3853
#5: 0 0 0 10 3854
df1 <- structure(list(X1 = c("ClaimIDs", "427"), X2 = c("ClaimIDs",
"419"), X3 = c("ClaimIDs", "399"), X4 = c("ClaimIDs", "399")),
.Names = c("X1",
"X2", "X3", "X4"), class = "data.frame", row.names = c("1", "2"))
df2 <- structure(list(row.names = 3852:3854, X1 = c(0L, 0L, 0L),
X2 = c(0L,
0L, 0L), X3 = c(0L, 0L, 0L), X4 = c(20L, 8L, 10L)),
.Names = c("row.names",
"X1", "X2", "X3", "X4"), class = "data.frame",
row.names = c("1", "2", "3"))