Извините, если название немного запутанное, так как я не знал, как еще объяснить эту проблему. По сути, я пытаюсь изменить процент от переменной группы , используя dplyr
. Однако я сталкиваюсь с проблемой, когда новая вычисляемая переменная выглядит числовой и даже вычисляет при использовании summary()
, но не позволяет мне вызывать mean()
или sd()
, не выдавая мне следующую ошибку:
Warning message:
In mean.default(., group_pct) :
argument is not numeric or logical: returning NA
Вот несколько примеров того, что происходит.
data(mtcars)
mtcars %>%
group_by(cyl) %>%
mutate(group_pct = hp / sum(hp)) %>%
summary()
Примечание: group_pct вычисляется правильно при вызове через summary()
...
data(mtcars)
mtcars %>%
group_by(cyl) %>%
mutate(group_pct = hp / sum(hp)) %>%
mean(group_pct)
... но когда я вызываю здесь среднее, оно не может завершить функцию. Даже когда я использую ungroup()
и / или na.rm = TRUE
, функция все равно не работает. Я не понимаю, в чем проблема здесь.
РЕДАКТИРОВАТЬ: Для уточнения, я надеюсь сделать что-то вроде этого ...
mtcars %>%
group_by(cyl) %>%
mutate(group_pct = hp / sum(hp)) %>%
paste0('Words: ', mean(group_pct))
Надеясь на этот конечный результат:
Words: 0.09375
... который я не могу использовать summarize()
, поэтому я не включил его с самого начала. Приносим извинения за возможные неудобства.