Использование «first» в dplyr для выбора первого значения группы, которое не является NA - PullRequest
0 голосов
/ 24 января 2019

Моя df "temp" выглядит как первые четыре столбца следующего:

ID OBS NUMER DENOM   RATIO
1  1   26    NA      1.5
1  2   10    NA      0,5556
1  3   18    18      1
1  4   51    26.333  1,461
2  1   17    NA      0,2

Я пытаюсь добавить пятый столбец, разделив значения группы для столбца NUMER на первое значение группы DENOM, которое не является NA. Как мне это сделать?

temp %>% 
  group_by(ID) %>% 
  mutate(RATIO = NUMER/first(DENOM[!is.na(DENOM)]))

Однако при выполнении этой команды выдается следующее сообщение об ошибке:

Ошибка в mutate_impl (.data, точки): столбец RATIO должен иметь длину 2 (размер группы) или один, а не 0.

Я тоже пробовал

temp %>% 
  group_by(ID) %>% 
  mutate(RATIO = NUMER/first(.$DENOM[!is.na(.$DENOM)]))

но в этом случае кажется, что он делится на первое значение всего столбца DENOM вместо первого значения группы для этого столбца. Пожалуйста помоги! (

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...