我创建了一个[0,1]的区间,我在很多区间内分割我的区间,我放了一些随机变量,我需要在每个区间比较我在下区间内有多少变量,我加上总和对于向量的变量,向量的大小是我的under_intervals的数量,最后,我的结果是这个向量,它包含每个低于区间的变量之和:
Q<- runif(120, min=0, max=1)
y<-sort(Q)
x<-seq(0,1, by=1/1200)
for(j in 1:length(x)-1){
for(i in 1:length(y)){
somme[j]= ifelse(y[i] >= x[j] & y[i]<= x[j+1],1,0)
}
}
我是R的初学者,所以我找不到我等待的最佳解决方案。
如果你能帮助我,我将非常感激。
答案 0 :(得分:1)
cut
函数旨在将数字向量分组。然后,您可以使用dplyr来汇总总和。
library(dplyr)
Q <- runif(120, min=0, max=1)
intervals <- data.frame(interval = cut(Q, breaks = seq(0, 1, 1/1200)), Q) %>%
group_by(interval) %>%
summarize( sum = sum(Q))
如果您希望同时保留0
,则可以使用split
创建这些间隔分割的列表,然后使用sapply
执行求和。
sapply(split(Q, f = cut(Q, breaks = seq(0, 1, 1/1200))), sum)