Вычтите значение из одной переменной второй переменной, используя dplyr - PullRequest
0 голосов
/ 01 мая 2019

У меня есть данные, зависящие от времени, которые включают в себя «год» в качестве столбца и год данных. У меня есть вторая переменная с одним значением в год, которую я хотел бы вычесть из первой переменной, когда годы совпадают.

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])

я ожидаю, что у результата есть запись с год = 2000, y = 0 и новый столбец diff = -10.

Но, кажется, не могу заставить это работать, используя dplyr.

Как это можно сделать с помощью dplyr?

1 Ответ

1 голос
/ 01 мая 2019

Есть ли разница между 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...