Ошибка в mean.default (X [[i]], ...): «trim» должен быть числовым с длиной один при использовании «%>%» - PullRequest
0 голосов
/ 14 мая 2019
library(mirt)
library(psych)
df<-bfi
df<-mutate(df,group=cut(age,c(0,20,40,60,100)))

#workable
aggregate(df[, -which(names(df) %in% c("gender", "education", "age","group"))],by=list(df$group),FUN= mean)

#same function,not workable
df %>% aggregate(.[, -which(names(.) %in% c("gender", "education", "age","group"))],by=list(.$group),FUN= mean)

При запуске над сценарием вы можете найти Error in mean.default(X[[i]], ...) : 'trim' must be numeric of length one при использовании канала %>% для той же функции.

В чем проблема?

1 Ответ

1 голос
/ 14 мая 2019

Без выборочных данных это снимок в темноте.Я думаю, что проблема связана с which, если мы сначала select, это облегчает сбор данных.Я также поклонник формульных обозначений, отсюда и использование.

iris %>%   
   .[-which(names(.)%in% c("Sepal.Length","Sepal.Width"))] %>% 
  aggregate(.~Species,.,FUN=mean)
     Species Petal.Length Petal.Width
1     setosa        1.462       0.246
2 versicolor        4.260       1.326
3  virginica        5.552       2.026
...