如何在单个数据帧上使用 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