ddply () говорит, что в моих данных отсутствует какое-то значение, а их нет, есть идеи, почему? - PullRequest
2 голосов
/ 24 сентября 2019

Я пытаюсь использовать ddply () вместо tapply ().Но он показывает какую-то ошибку, которую я не могу исправить.

library(MASS)
data(birthwt)
ddply(birthwt$bwt,birthwt$race,mean)

Ошибка возврата if (empty (.data)) (.data): пропущенное значение, где требуется TRUE / FALSE

1 Ответ

4 голосов
/ 24 сентября 2019

Ошибка не из-за отсутствия данных, а из-за неправильного синтаксиса, используемого для ddply.Первым аргументом должен быть фрейм данных, затем переменные для группировки, затем итоговая функция.

Так что-то вроде:

ddply(birthwt, ~race, summarize, Mean = mean(bwt))

  race     Mean
1    1 3102.719
2    2 2719.692
3    3 2805.284

Однако я бы рассмотрел вопрос о dplyr , более современный преемник plyr.Эта же операция будет выглядеть так:

library(dplyr)
birthwt %>% 
  group_by(race) %>% 
  summarise(Mean = mean(bwt))
...