Как сгруппировать один столбец и получить средства из других столбцов - PullRequest
0 голосов
/ 23 апреля 2019

enter image description here

агрегат (. ~ Станция, данные2017 [-14], среднее (na.rm = TRUE)) почему моя команда не работает?

1 Ответ

0 голосов
/ 23 апреля 2019

Нам нужно удалить () из mean или использовать анонимную функцию, а затем использовать function(x) mean(x, na.rm = TRUE).Если мы не хотим использовать анонимную функцию, укажите параметры и значения для этого параметра

aggregate(. ~ station, data2017[-14], mean, na.rm = TRUE, na.action = na.pass) 

ПРИМЕЧАНИЕ. Здесь нам также может понадобиться na.action, поскольку в столбцах есть элементы NA,По умолчанию он может удалить строки NA, если в одной из строк есть NA *


. В качестве воспроизводимого примера мы можем использовать набор данных mtcars

data(mtcars)
mtcars[3:4, 2] <- NA # assigning some NA
mtcars[10, 5] <- NA
aggregate(. ~ gear, mtcars, mean(na.rm = TRUE))

Ошибка в mean.default (na.rm = TRUE): отсутствует аргумент "x" без значения по умолчанию

aggregate(. ~ gear, mtcars, mean, na.rm = TRUE)
#  gear      mpg      cyl     disp       hp     drat     wt     qsec        vs  am     carb
#1    3 15.72857 7.571429 331.1786 180.8571 3.136429 3.9410 17.56714 0.1428571 0.0 2.785714
#2    4 25.24000 4.600000 120.0600  85.8000 4.075000 2.5640 19.06700 0.8000000 0.7 2.300000
#3    5 21.38000 6.000000 202.4800 195.6000 3.916000 2.6326 15.64000 0.2000000 1.0 4.400000

aggregate(. ~ gear, mtcars, mean, na.rm = TRUE, na.action = na.pass)
#  gear      mpg      cyl     disp       hp     drat       wt   qsec        vs        am     carb
#1    3 16.10667 7.571429 326.3000 176.1333 3.132667 3.892600 17.692 0.2000000 0.0000000 2.666667
#2    4 24.53333 4.727273 123.0167  89.5000 4.054545 2.616667 18.965 0.8333333 0.6666667 2.333333
#3    5 21.38000 6.000000 202.4800 195.6000 3.916000 2.632600 15.640 0.2000000 1.0000000 4.400000

Обратите внимание на разницу в значениях mean при добавлении na.action

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