我创建了一个state 从内置矩阵命名的数据集,其中state.x77包含两个连续变量(人口和收入)和两个因子变量(区域和区域).
我计算使用的意思是区域收入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
Run Code Online (Sandbox Code Playgroud)
为什么会发生错误?我该怎样预防呢?
flo*_*del 23
这是一个非常常见的错误,您需要使用命名参数FUN:
ave(state$inc, state$region, FUN = mean)
Run Code Online (Sandbox Code Playgroud)
否则mean将被解释为另一个分组变量(...参数的一部分ave.)