如何在单个数据帧上使用 rbind 和 cbind
How to Use rbind and cbind on Single Dataframe
抱歉问题框架错误。
我是新手,想自学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 时出现错误,因为 col 名称不匹配,因为两个 df 具有不同的 col 名称
当我尝试将两个 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
看来您需要使用合并。示例:
重新创建数据框:
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")
添加味精变量。要使用合并,请为两个变量指定一个略有不同的名称(在您的情况下为 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
抱歉问题框架错误。 我是新手,想自学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 时出现错误,因为 col 名称不匹配,因为两个 df 具有不同的 col 名称
当我尝试将两个 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
看来您需要使用合并。示例:
重新创建数据框:
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")
添加味精变量。要使用合并,请为两个变量指定一个略有不同的名称(在您的情况下为 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