按订单分类数据,具有选定的bin大小

时间:2017-10-25 14:22:25

标签: r

我有一个值向量,我想按降序排序,然后在大小为100的二进制文件中,最后一个包含所有剩余的值。

#generate random data
set.seed(1)
x <- rnorm(8366)

#In descending order
y <- x[order(-x)]

现在我曾使用cut按值进行bin,但我希望这些bin的大小有限。因此,第一个bin将具有y中的前100个值,第二个bin将具有下一个100等,直到我有十个bin,最后一个bin包含所有剩余值。我不知道该怎么做。

3 个答案:

答案 0 :(得分:2)

以下将以列表的形式返回垃圾箱:

mylist <- split(y, c(rep(1:9, each = 100), rep(10, 8366 - 900)))

前9个元素每个包含100个记录,其余元素存储在第10个元素中。

答案 1 :(得分:0)

我不确定你的意思&#34; bin&#34;。您想以某种方式总结每100个值吗?例如,总结一下?如果是这样,这是一个解决方案:

#generate random data
set.seed(1)
x <- rnorm(8836)

n <- ceiling(length(x)/100) * 100
y <- rep(0, n)

#In descending order
y[1:length(x)] <- x[order(-x)]

X <- matrix(y, nrow = , ncol = 100, byrow = T) 
apply(X, 2, sum)

答案 2 :(得分:0)

您可以使用cut

res <- cut(y,c(rev(y)[seq(1,901,100)],Inf),right = F)
table(res)
# res
# [-3.67,-2.33) [-2.33,-2.05) [-2.05,-1.87) [-1.87,-1.72)  [-1.72,-1.6) 
#           100           100           100           100           100 
#   [-1.6,-1.5)  [-1.5,-1.41) [-1.41,-1.34) [-1.34,-1.27)   [-1.27,Inf) 
#           100           100           100           100          7466