as.integer不使用聚合和多个函数

时间:2018-03-24 01:18:55

标签: r aggregate

我正在尝试使用aggregate获取计数和组的权重,我希望将计数显示为整数并表示为double。

以下代码效果很好:

> aggregate(weight~group, data=PlantGrowth, FUN=function(x) as.integer(length(x)))
  group weight
1  ctrl     10
2  trt1     10
3  trt2     10

但是长度在以下代码中转换为double:

> aggregate(weight~group, data=PlantGrowth, FUN=function(x) c(len=length(x), mn=mean(x)))
  group weight.len weight.mn
1  ctrl     10.000     5.032
2  trt1     10.000     4.661
3  trt2     10.000     5.526

即使as.integer也不起作用:

> aggregate(weight~group, data=PlantGrowth, FUN=function(x) c(len=as.integer(length(x)), mn=mean(x)))
  group weight.len weight.mn
1  ctrl     10.000     5.032
2  trt1     10.000     4.661
3  trt2     10.000     5.526

如何使用聚合和多个函数获取长度的整数值?

1 个答案:

答案 0 :(得分:2)

原因是aggregate返回data.frame,其中包含您的摘要统计信息matrixmean的嵌套length(请查看{{1} }}

您可以通过以下方式确保正确施法:

str(your_aggregate_return_object)