Это дополнительный вопрос к этому сообщению: В R как подсчитать количество сгруппированных пар, в которых значение столбца в одной строке больше другого?
Вот мой dput для набора данных df1:
structure(list(Name = c("A.J. Ellis", "A.J. Ellis", "A.J. Pierzynski",
"A.J. Pierzynski", "Aaron Boone", "Adam Kennedy", "Adam Melhuse",
"Adrian Beltre", "Adrian Beltre", "Adrian Gonzalez", "Alan Zinter",
"Albert Pujols", "Albert Pujols"), Age = c(37, 36, 37, 36, 36,
36, 36, 37, 36, 36, 36, 37, 36), Year = c(2018, 2017, 2014, 2013,
2009, 2012, 2008, 2016, 2015, 2018, 2004, 2017, 2016), Tm = c("SDP",
"MIA", "TOT", "TEX", "HOU", "LAD", "TOT", "TEX", "TEX", "NYM",
"ARI", "LAA", "LAA"), Lg = c("NL", "NL", "ML", "AL", "NL", "NL",
"ML", "AL", "AL", "NL", "NL", "AL", "AL"), G = c(66, 51, 102,
134, 10, 86, 15, 153, 143, 54, 28, 149, 152), PA = c(183, 163,
362, 529, 14, 201, 32, 640, 619, 187, 40, 636, 650)), row.names = c(NA,
13L), class = "data.frame")
Вот код, который для моей предыдущей задачи правильно сопоставил пары:
df1 %>%
arrange(Name, Age) %>%
group_by(Name) %>%
filter(last(G) < first(G))
Каждая сгруппированная пара имеет два наблюдения. У каждого также есть столбец с именем G и столбец Year.
Вот как выглядят данные после группировки с использованием приведенного выше кода: https://www.dropbox.com/s/hh2qgkbn4cy4k4l/Data%20after%20grouping.png?dl=0
Теперь, что Я хотел бы знать, что для каждой подходящей пары есть разница в значении «столбец G» между значением «Возраст 37» и значением «Возраст 36», выполняя следующие вычисления: (значение 36 лет) - (значение 37 лет). Отрицательный результат - это нормально.
Кроме того, для всех сопоставленных пар в наборе данных я хотел бы получить сумму этих разностей.