Создание новых строк для каждой группы, используя значения из первой строки группы - PullRequest
0 голосов
/ 31 мая 2019

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

Я пытаюсь использовать do (add_row ()) для создания новой строки и использовать top_n для доступа к значению из первой строки каждой группы.

df = tibble(ID = rep(1:2, each = 2), x = rep(1:2, each = 2), y = seq(1:4))
gb_df <- group_by(df, ID, x)

new_df <- gb_df %>% do(add_row(., ID = top_n(.,1, wt=y)[,"ID"], x = 0, y = 
top_n(.,1, wt=y)[,"y"]-1, .before=0))

Однако я получаю следующее сообщение об ошибке.

Error: Columns `ID`, `y` must be 1d atomic vectors or lists

Я хочу следующий вывод.

> new_df
# A tibble: 6 x 3
# Groups:   ID [3]
     ID     x     y
  <dbl> <dbl> <dbl>
1     1     0     0
2     1     4     1
3     1     4     2
4     2     0     2
5     2     5     3
6     2     5     4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...