2
我有一长串数字,例如,计算向量中超过data.frame的值中的值的数量
set.seed(123)
y<-round(runif(100, 0, 200))
而且我想在y
列来存储超过在数据帧的x
列中的每个值的值的数目:
df <- data.frame(x=seq(0,200,20))
我可以手动计算的数字,这样的:
length(which(y>=20)) #93 values exceed 20
length(which(y>=40)) #81 values exceed 40
等我知道我可以使用for循环与x的所有值,但有没有更优雅的方式?
我尝试这样做:
df$y <- length(which(y>=df$x))
但是,这给出了一个警告,不给我所需的输出。
数据帧应该是这样的:
df
x y
1 0 100
2 20 93
3 40 81
4 60 70
5 80 61
6 100 47
7 120 40
8 140 29
9 160 19
10 180 8
11 200 0
作为另一个想法,以避免全用,所有的比较和许多求和,'findInterval'是非常方便的这样的任务 - '长度(Y) - findInterval(df $ x,sort(y),left.open = TRUE)' –