我有与时间相关的数据,其中包括“年份”作为列,并且是数据的年份。我有第二个变量,每年有一个值,当年份相同时,我想从第一个变量中减去。
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如何实现?
答案 0 :(得分: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