список столбцов группировать и суммировать - PullRequest
0 голосов
/ 18 января 2019

AIM: Я хотел бы написать следующий код, который отлично работает для фрейма данных, но для каждого из фреймов данных рабочего процесса столбца списка.

Обратите внимание, что я беру первый элемент списка и создаю фрейм данных, а затем работаю с этим фреймом данных, потому что я не понял, как group_by вложенных списков (см. ПРОБОВАНО).

DATA

В настоящее время работает:

nested_NBA <- NBA%>%
  group_by(season)%>%
  nest()
 
one_season <- nested_NBA$data[1]

one_season%>% 
  bind_rows()%>%
  group_by(player)%>%
  summarise(shots_attempts_ratio=sum(shot_made)/n(),
            total_attempts=n(),
            shots=sum(shot_made))

ПЫТАЛИСЬ:

nested_NBA%>% map(data, ~group_by(.x$player))

ОШИБКА:

Warning messages:
1: In .f(.x[[i]], ...) : data set ‘.x[[i]]’ not found
2: In .f(.x[[i]], ...) : data set ‘~group_by(.x$player)’ not found
3: In .f(.x[[i]], ...) : data set ‘.x[[i]]’ not found
4: In .f(.x[[i]], ...) : data set ‘~group_by(.x$player)’ not found

1 Ответ

0 голосов
/ 18 января 2019

После шага nest мы можем циклически перебрать 'data' list в mutate, используя map, затем сделать group_by и summarise с ним

library(tidyverse)
NBA%>%
  group_by(season)%>%
  nest() %>%
  mutate(data = map(data, ~ .x %>%
        group_by(player)%>%
        summarise(shots_attempts_ratio=sum(shot_made)/n(),
        total_attempts=n(),
        shots=sum(shot_made))
        )) %>%
 unnest
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...