Ошибка R в unique.default(x) unique() применяется только к векторам - программирование
Подтвердить что ты не робот

Ошибка R в unique.default(x) unique() применяется только к векторам

Я создал набор данных с именем state из встроенной матрицы state.x77 с двумя непрерывными переменными (Population and Income) и двумя факторами (область и область).

Я вычислил средний доход по регионам с помощью tapply(), by(), aggregate() и ave(), чтобы увидеть формат возвращаемого объекта.

Но вызов ave() вызывает ошибку

Ошибка в unique.default(x): unique() применяется только к векторам

Код:

## Mean income by region
tapply(state$inc, state$region, mean)
# Northeast         South North Central          West 
# 4570.222       4011.938      4611.083      4702.615 

by(state$inc, state$region, mean)
# state$region: Northeast
#
# [1] 4570.222
# [...]

aggregate(state$inc, list(state$region), mean)
#
#         Group.1        x
# 1     Northeast 4570.222
# 2         South 4011.938
# 3 North Central 4611.083
# 4          West 4702.615

ave(state$inc, state$region, mean)
# Error in unique.default(x) : unique() applies only to vectors

Почему возникает ошибка? Как я могу предотвратить это?

4b9b3361

Ответ 1

Это очень распространенная ошибка, вам нужно использовать именованный аргумент FUN:

ave(state$inc, state$region, FUN = mean)

иначе mean будет интерпретироваться как другая переменная группировки (часть аргумента ... для ave.)