抱歉错误的问题框架。 我是一个新手,试图独自学习R.
我有一个类似的场景,
t1_df
id name address
1 x india
2 y usa
t2_df
id name address
3 a india
4 b usa
现在我尝试使用data.frame添加额外的列“msg” 即
t1_df <- data.frame(t1_df,msg)
t2_df <- data.frame(t2_df,msg)
t1_df
id name address msg
1 x india hi
2 y usa hello
t2_df
id name address msg
3 a india go
4 b usa bye
当我尝试 rbind 时出现错误,因为列名称不匹配,因为两个df的列号不同
当我试图将两个df分别绑定到单个数据帧 t 时,它包含了来自两个df的所有列 即
colnames(t)的
id name address t1_msg id name address t2_msg
但我想将数据框作为
id name address t1_msg t2_msg
1 x india hi NA
2 y usa hello NA
3 a india NA go
4 b usa NA bye
我如何获得上面提到的输出。
请建议我。
先谢谢 Mohan.V
答案 0 :(得分:2)
看起来你需要使用合并。例如:
重新创建数据框:
t1_df<-as.data.frame(matrix(c(1, "x", "india",
2, "y", "usa"), ncol= 3, nrow =2, byrow= T)
)
names(t1_df) <- c("id","name","address")
t2_df<-as.data.frame(matrix(c(3, "a", "india",
4, "b", "usa"), ncol= 3, nrow =2, byrow= T))
names(t2_df) <- c("id","name","address")
添加msg变量。要使用合并,两个变量的名称略有不同(在您的情况下为t1_msg和t2_msg)
t1_df$t1_msg <- c("hi","hello")
t2_df$t2_msg <- c("go","bye")
然后使用merge来合并数据帧。设置all = TRUE将追加在其他数据帧中没有完全匹配的行。
merge(t1_df,t2_df,all = TRUE)
结果数据框如下所示:
id name address t1_msg t2_msg
1 1 x india hi <NA>
2 2 y usa hello <NA>
3 3 a india <NA> go
4 4 b usa <NA> bye