我正在尝试使用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
如何使用聚合和多个函数获取长度的整数值?
答案 0 :(得分:2)
原因是aggregate
返回data.frame
,其中包含您的摘要统计信息matrix
和mean
的嵌套length
(请查看{{1} }}
您可以通过以下方式确保正确施法:
str(your_aggregate_return_object)