我创建了一个名为state
从内置矩阵state.x77
有两个连续变量(人口和收入)和两个因子变量(地区和面积)。
我使用以下方法计算了按地区划分的平均收入tapply()
, by()
, aggregate()
, and 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
为什么会发生错误?我该如何预防?
这是一个很常见的错误,你需要使用命名参数FUN
:
ave(state$inc, state$region, FUN = mean)
否则mean
将被解释为另一个分组变量(...
论证ave
.)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)