繁体   English   中英

确定两个整数前的元素的数量:R

[英]Determine the number of elements that precede a number in two integers: R

我在R中有两个长双打,分别叫m和n,由多个数字组成:

m <- c(3,5,8,12,15,19,21,23,26,33,37,42,45,47,51,54,58,60)
n <- c(13,14,52,53,56,57)

我正在尝试计算n中每个条目之前的m中的条目数,再加上1。

例如,n中的第一个条目是13。在m中,有13个之前的4个数字3、5、8、12,因此我希望程序返回5。对于14,应返回的结果是同样是5。对于52,在52之前的m中有15个数字,所以我希望程序返回16。

谢谢!

m<-c(3,5,8,12,15,19,21,23,26,33,37,42,45,47,51,54,58,60)
n<-c(13,14,52,53,56,57)

sapply(n,function(x){sum(m<x)+1})

结果:

[1]  5  5 16 16 17 17

我们可以使用findInterval

findInterval(n, m) + 1
#[1]  5  5 16 16 17 17
 cut(n,m,2:length(m))
[1] 5  5  16 16 17 17
Levels: 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

as.numeric(cut(n,m,2:length(m)))+1
[1]  5  5 16 16 17 17

as.numeric(as.character(cut(n,m,2:length(m))))
[1]  5  5 16 16 17 17

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM