J'ai créé un ensemble de données nommé state
à partir de la matrice intégrée state.x77
avec deux variables continues (population et revenu) et deux variables factorielles (région et zone).
J'ai calculé le revenu moyen par région en utilisant tapply()
, by()
, aggregate()
y ave()
pour voir le format de l'objet retourné.
Mais l'appel à ave()
donne l'erreur
Erreur dans unique.default(x) : unique() ne s'applique qu'aux vecteurs
Le code est :
## 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
Pourquoi l'erreur se produit-elle ? Comment puis-je l'éviter ?