【问题标题】:Subtract a value from one variable by second variable using dplyr使用 dplyr 从一个变量中减去第二个变量的值
【发布时间】:2019-09-19 16:06:28
【问题描述】:

我有时间相关的数据,其中包含“年份”作为一列,并且是数据的年份。我有第二个变量,每年一个值,当年份相同时,我想从第一个变量中减去它。

library(dplyr)

a1 = data.frame(year = 2000:2005, y=0:5)
b1 = data.frame(year = 2000:2005, y=0:5)
ab = rbind(a1,b1)

c1 = data.frame(year = 2000:2005, x = 10:15)

# my best attempt - does not work
result <- ab %>% group_by(year) %>% mutate(diff = year - c1[year])

我期望结果有一个条目 year = 2000,y = 0,新列 diff = -10。

但是,使用 dplyr 似乎无法完成这项工作。

如何使用 dplyr 来实现?

【问题讨论】:

    标签: r dplyr


    【解决方案1】:

    a1 和 b1 有区别吗?它们看起来一样。

    这个怎么样?

    d <- left_join(ab, c1, by = "year") %>% 
      mutate(diff = y-x)
    

    给我这个,这似乎解决了你的问题。

       year y  x diff
    1  2000 0 10  -10
    2  2001 1 11  -10
    3  2002 2 12  -10
    4  2003 3 13  -10
    5  2004 4 14  -10
    6  2005 5 15  -10
    7  2000 0 10  -10
    8  2001 1 11  -10
    9  2002 2 12  -10
    10 2003 3 13  -10
    11 2004 4 14  -10
    12 2005 5 15  -10
    

    【讨论】:

    • 在这种情况下,a1 和 b1 之间没有区别,但这本身并不是故意的。你的建议奏效了。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-11
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 2022-08-16
    相关资源
    最近更新 更多