2017-01-19 3 views
0

Рассмотрим следующий пример:сделки с NA-х при использовании tapply

Factor <- c(rep('Male', 10),rep('Female', 10)) 
Age <- sample(30:80,20) 

df1 <- data.frame(Factor, Age) 

with(df1, tapply(Age, Factor, mean)) 

Последняя команда дает нам средний возраст для обоих полов. Теперь скажем, что одно inout отмечено NA. Как мы можем решить эту проблему?

df1$Age[15] <- NA 
with(df1, tapply(Age, Factor, mean)) 

ответ

1

Вы можете передать аргументы функции используются в tapply, в этом случае mean.

Если вы посмотрите на ?mean, вы увидите, что значение по умолчанию для mean: na.rm = False. Просто измените его:

tapply(df1$Age, df1$Factor, mean, na.rm = T) 

В качестве альтернативы, используя with:

with(df1, tapply(Age, Factor, mean, na.rm = T)) 
Смежные вопросы