假設我有以下的載體:尋找在Vector多個元素
> x <- sample(1:10,20,replace=TRUE)
> x
[1] 8 6 9 9 7 3 2 5 5 1 6 8 5 2 9 3 5 10 8 2
我怎樣才能找到哪些元素是8或9?
假設我有以下的載體:尋找在Vector多個元素
> x <- sample(1:10,20,replace=TRUE)
> x
[1] 8 6 9 9 7 3 2 5 5 1 6 8 5 2 9 3 5 10 8 2
我怎樣才能找到哪些元素是8或9?
這是一種方法。首先我會在其中x是8或9。然後,我們可以驗證這些索引的索引,x是確實8,9
> inds <- which(x %in% c(8,9))
> inds
[1] 1 3 4 12 15 19
> x[inds]
[1] 8 9 9 8 9 8
另外,如果你不需要使用的索引,但只是的元素,你可以做
> x <- sample(1:10,20,replace=TRUE)
> x
[1] 6 4 7 2 9 3 3 5 4 7 2 1 4 9 1 6 10 4 3 10
> x[8<=x & x<=9]
[1] 9 9
你可以嘗試|
運營商短條件
which(x == 8 | x == 9)
grepl
也許有用的功能。請注意,grepl
出現在R 2.9.0及更高版本的版本中。有關grepl
的便利之處在於它返回的長度與x
相同。
grepl(8, x)
[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[13] FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE
grepl(9, x)
[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE
[13] FALSE FALSE FALSE FALSE TRUE FALSE FALSE TRUE
要在你得出答案,你可以做以下
grepl(8,x) | grepl(9,x)
我也喜歡grepl,非常適合過濾文本字符串上的數據框等。感謝OR示例 - 我認爲這會很簡單,但我一直試着`||`這是錯誤的語法。 – atomicules 2010-11-29 17:37:52
但是假設我在尋找兩個值沒有他們的順序排序的具體指標。如果我正在查找字母表中的Z和A的索引,我將如何得到「26,1」而不是「1,26」的結果? _which(字母%%c('z','a'))_ – dasf 2017-09-17 17:40:45