unique.default(x)unique()中的R错误仅适用于向量

时间:2013-05-22 00:47:21

标签: r

我从内置矩阵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

为什么会发生错误?我该如何预防?

1 个答案:

答案 0 :(得分:21)

这是一个非常常见的错误,您需要使用命名参数FUN

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

否则mean将被解释为另一个分组变量(...的{​​{1}}参数的一部分。)