逐个单元格合并表格

时间:2017-02-22 17:02:16

标签: r

鉴于这两个表

a <- data.frame(a=c(1,2,3),b=c(4,5,6))
b <- data.frame(a=c(7,8,9),b=c(10,11,12))

我想通过像这样按单元格组合a和b单元来获得第三个表:

  a   b
1 1,7 4,10
2 2,8 5,11
3 3,9 6,12

1 个答案:

答案 0 :(得分:2)

这实际上取决于你想对结果做些什么。以下是几个版本:

data.frame(Map("paste", a, b, sep=","))
    a    b
1 1,7 4,10
2 2,8 5,11
3 3,9 6,12

返回两列因子变量。您可以添加字符串asFactors = FALSE来代替获取字符变量,如

data.frame(Map("paste", a, b, sep=","), stringsAsFactors=FALSE)

或将它们放入具有相似名称的单独列中。

cbind(a, b)[c(1,3,2,4)]
  a a.1 b b.1
1 1   7 4  10
2 2   8 5  11
3 3   9 6  12

或更多编程

do.call(cbind.data.frame, Map(cbind, a, b))
  a.1 a.2 b.1 b.2
1   1   7   4  10
2   2   8   5  11
3   3   9   6  12