我有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
非常感谢任何帮助!
答案 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