我有一个如下所示的数据集:
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循环吗?或者它可以在第一个循环中实现吗?
最佳答案
for (i in 1:5){
data[paste('bin', i, sep = '')] <- as.numeric(cut2(data$values,g=i*50))
}
将使用粘贴将bin1列添加到bin5到您的数据框.