在数据框中将一行添加到另一个数据框的所有行

时间:2017-01-13 19:26:58

标签: r dataframe

我有2个数据框:

A <- data.frame(x = c(1,4), y = c(3,5))
B <- data.frame(x = c(3,6), y = c(7,9))

A

x   y
1   3
4   5

x    y
2    4
3    6

我想将A中的所有行添加到B的第一行。我想要的输出数据框是:

x    y
3    7
6    9

我试过了B[1, ] + A,但它无效:

#Error in Ops.data.frame(A, B[1, ]) : 
#  ‘+’ only defined for equally-sized data frames

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:4)

如果不将所有内容转换为矩阵并使用矩阵,我们可以使用:

mapply("+", A, B[1, ])

另一种方式(更类似于使用矩阵)是:

A + B[rep.int(1, nrow(A)),]

答案 1 :(得分:2)

我们也可以复制'B'的第一行并添加'A'

unlist(B[1,])[col(A)] + A
#  x y
#1 3 7
#2 6 9