我有一个值向量,我想按降序排序,然后在大小为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包含所有剩余值。我不知道该怎么做。
答案 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