我想在R中使用match()
在特定時間間隔內查找任何匹配值。例如:can match()的範圍包含在R中?
v <- c(2.2, 2.4, 4.3, 1.3, 4.5, 6.8, 0.9)
match(2.4, v)
給了我一切,其中2.4發生在v
的位置,但如果我想給一個範圍內所有可能的匹配是什麼?例如2.4 +/- 0.2?
任何幫助非常感謝,提前致謝!
我想在R中使用match()
在特定時間間隔內查找任何匹配值。例如:can match()的範圍包含在R中?
v <- c(2.2, 2.4, 4.3, 1.3, 4.5, 6.8, 0.9)
match(2.4, v)
給了我一切,其中2.4發生在v
的位置,但如果我想給一個範圍內所有可能的匹配是什麼?例如2.4 +/- 0.2?
任何幫助非常感謝,提前致謝!
在這種情況下,我會使用子集:
v[v>2.2 & v<2.6]
或
which(v>2.2 & v<2.6)
取決於如果你想要的值或者索引
本上是另一種選擇:
which(findInterval(v, c(-.2, .2) + 2.4) == 1)
[1] 1 2
findInterval(v, c(-.2, .2) + 2.4)
給你1 1 2 0 2 2 0
,其中1表示元素在區間內,0表示它在左邊,2表示在右邊。
'which(abs(v - 2.4)<0.2)'? –
請注意'match'只返回匹配的第一個參數。也許'哪個'可以對你更好,即使這裏提供的代碼都有相同的結果(語法略有不同)。 – SabDeM
也許'data.table :: between(v,2.2,2.6,incbounds = FALSE)' –