【发布时间】:2015-05-01 08:37:55
【问题描述】:
我有一个如下所示的数据集:
ID a b
ID1 0.1 20.3
ID2 0.2 21.6
ID3 1.2 1.5
etc.
我想将这些值分成大小相等的组。这可以通过以下方式完成:
data$bin1 <- as.numeric(cut2(data$b,g=50))
这会将 b 列中的值分成 50 个大小相等的组:
ID a b bin
ID1 0.1 20.3 2
ID2 0.2 21.6 2
ID3 1.2 1.5 1
etc.
但是,我需要针对不同数量的组多次执行此操作。我试过了:
for (i in 1:5){
data$bin[i] <- as.numeric(cut2(data$values,g=i*50))
}
但随后我收到此警告:“要替换的项目数不是替换长度的倍数”。
对值进行分组后,我想计算每个组内的均值,可以这样做:
means <- ddply(data,.(bin),summarise,mean.a=mean(a),mean.b=mean(b))
我想对所有的垃圾箱尺寸都这样做。我需要使用另一个for循环吗?还是可以在第一个循环中实现?
【问题讨论】:
-
data$bin[i]需要一个值