使用[d] plyr逐行添加数据帧

时间:2015-04-25 10:50:10

标签: r plyr dplyr

我有两个数据框

df1
#    a  b
# 1 10 20
# 2 11 21
# 3 12 22
# 4 13 23
# 5 14 24
# 6 15 25

df2
#   a b
# 1 4 8

我想要以下输出:

df3
#    a  b
# 1 14 28
# 2 15 29
# 3 16 30
# 4 17 31
# 5 18 32
# 6 19 33

即。将df2添加到df1的每一行。

有没有办法使用plyr(mdplyr ??)或dplyr获得所需的输出?

3 个答案:

答案 0 :(得分:7)

我认为“dplyr”没有理由这样的事情。在基地R你可以做:

$('some_element').next().focus()

df1 + unclass(df2) # a b # 1 14 28 # 2 15 29 # 3 16 30 # 4 17 31 # 5 18 32 # 6 19 33 相同。

答案 1 :(得分:4)

带有dplyr的一个衬垫。

mutate_each(df1, funs(.+ df2$.), a:b)

#   a  b
#1 14 28
#2 15 29
#3 16 30
#4 17 31
#5 18 32
#6 19 33

答案 2 :(得分:2)

使用甜函数R的基础sweep解决方案:

sweep(df1, 2, unlist(df2), '+')
#   a  b
#1 14 28
#2 15 29
#3 16 30
#4 17 31
#5 18 32
#6 19 33