Агрегирование двух строк на основе условия разных идентификаторов в R - PullRequest
0 голосов
/ 19 февраля 2020

Я имею дело с набором статистических данных игроков для вида спорта. Есть ошибка в данных, когда одна неделя игроку, который не существует, были приписаны данные, которые принадлежат реальному игроку. Мне нужно объединить данные двух игроков и удалить экземпляр ряда фальшивых игроков.

Мне нужно настроить свой код предварительной обработки, чтобы приспособиться к этому, поэтому, когда я собираю данные о будущих неделях, мне не нужно вносить ручные корректировки.

df <- data.frame(Name = c("Bob","Ben","Bill"),
                 Team = c("Dogs","Cats","Birds"),
                 Runs = c(6, 4, 2)

Я хотел бы что-то сделать вдоль линий агрегации двух строк на основе их df$Name, например, когда df$Name == "Bob" & df$Name == "Bill" агрегирующие столбцы [3:40] - это мои столбцы со статистикой чисел c, [1:2] имеют df$Name и df$Team.

1 Ответ

0 голосов
/ 19 февраля 2020

Это будет зависеть от типа агрегации, которую вы пытаетесь выполнить. Это выглядит как идеальное использование group_by из пакета dplyr. Рассмотрим набор данных CO2.

library(dplyr)

CO2 %>% 
 group_by(Plant) %>% 
 summarise(
     n = n(), #Calculate number of rows in each group
     meanUptake = mean(uptake) # Aggregate data and take mean for each group
  ) %>% 
  ungroup()

Здесь мы берем каждую группу, в вашем случае выше это будет имя. В итоге, если вы хотите sh включить дополнительную информацию (например, команду), включите ее в резюме.

...