R 获取特定范围内的值的频率

R 获取特定范围内的值的频率,r,vector,range,R,Vector,Range,我有以下数据 data<-c(3,4,5,6,5,4,5,6,7,5) lowerLimits<-c(2,4,6) upperLimits<-c(4,6,8) 数据二叉索引树或位完全符合您的要求->您可以使用mapply和一些逻辑函数: myfun <- function(ll, ul) { sum(data >= ll & data < ul) } mapply(myfun, lowerLimits, upperLimits) # [1]

我有以下数据

data<-c(3,4,5,6,5,4,5,6,7,5)
lowerLimits<-c(2,4,6)
upperLimits<-c(4,6,8)

数据二叉索引树或位完全符合您的要求->

您可以使用
mapply
和一些逻辑函数:

myfun <- function(ll, ul) {
    sum(data >= ll & data < ul)
}

mapply(myfun, lowerLimits, upperLimits)
# [1] 1 6 3
myfun=ll&data
>sapply(seq(length(lowerLimits))、函数(x)sum(data>lowerLimits[x]&data如果下限和上限是一个连续的范围,您也可以使用
cut
table

> data <- c(3,4,5,6,5,4,5,6,7,5)
> breaks <- c(2, 4, 6, 8)
> counts <- table(cut(data, breaks=breaks, right=FALSE))

[2,4) [4,6) [6,8) 
    1     6     3

>数据中断计算从哪里得到1,6,3?除了结果之外,我在任何地方都看不到任何1。我希望我可以投票关闭,因为它被询问和回答了至少5次。@rafee有1个元素在[2;4]范围内。谢谢你的回答!
> sapply(seq(length(lowerLimits)), function(x) sum(data > lowerLimits[x] & data <= upperLimits[x]))
[1] 3 6 1
> data <- c(3,4,5,6,5,4,5,6,7,5)
> breaks <- c(2, 4, 6, 8)
> counts <- table(cut(data, breaks=breaks, right=FALSE))

[2,4) [4,6) [6,8) 
    1     6     3