鉴于这两个表
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
答案 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