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)' –