首页 文章

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

提问于
浏览
4

我有两个数据帧

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 回答

  • 7

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

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

    df1 + list(4, 8) 相同 .

  • 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

    使用sweet函数的基础 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
    

相关问题