我想檢查資料框中兩列之間的關系并提取滿足特定關系的最后一個元素。
t x y
1.5 875 450
1.3 460 232
1.1 225 125
1.7 1725 900
1.6 720 460
2.0 22 14
1.7 775 450
1.5 880 450
2.4 870 455
1.1 425 220
1.8 1750 910
1.3 560 320
1.3 430 232
2.1 3090 1840
2.0 1750 7950
1.7 170 895
1.1 350 220
1.2 80 45
1.8 169 880
1.7 1700 900
1.9 230 130
2.1 540 237
0.8 50 28
所以我希望提取滿足的最后一個 y 點:y >= 0.45 x
。問題是y
它將繼續采用不同的值,我只想提取最后一個高于或等于 0.45 x 的 y 值。
謝謝您的幫助
uj5u.com熱心網友回復:
我們可以創建條件,使用 提取索引which
,回傳max
索引并使用它來提取“y”的值
with(df, y[max(which(y >= 0.45 *x))])
[1] 28
資料
df <- structure(list(t = c(1.5, 1.3, 1.1, 1.7, 1.6, 2, 1.7, 1.5, 2.4,
1.1, 1.8, 1.3, 1.3, 2.1, 2, 1.7, 1.1, 1.2, 1.8, 1.7, 1.9, 2.1,
0.8), x = c(875L, 460L, 225L, 1725L, 720L, 22L, 775L, 880L, 870L,
425L, 1750L, 560L, 430L, 3090L, 17500L, 1700L, 350L, 105L, 1690L,
1700L, 230L, 540L, 50L), y = c(450L, 232L, 125L, 900L, 460L,
14L, 450L, 450L, 455L, 220L, 910L, 320L, 232L, 1840L, 7950L,
895L, 220L, 45L, 880L, 900L, 130L, 237L, 28L)),
class = "data.frame", row.names = c(NA,
-23L))
uj5u.com熱心網友回復:
你可以做:
with(df, y[tail(which(y >= 0.45*x), 1)])
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/527006.html
標籤:r
下一篇:RDplyr匯總行,除非只有NA