ベクトルに特定の値が含まれているかどうかを確認するにはどうすればよいですか?
質問する
838526 次
7 に答える
564
match()
(最初の外観を返す)関数と%in%
(ブール値を返す)関数の両方がこのために設計されています。
v <- c('a','b','c','e')
'b' %in% v
## returns TRUE
match('b',v)
## returns the first location of 'b', in this case: 2
于 2009-07-23T02:25:24.957 に答える
196
is.element()
より読みやすいコードになり、と同じです%in%
v <- c('a','b','c','e')
is.element('b', v)
'b' %in% v
## both return TRUE
is.element('f', v)
'f' %in% v
## both return FALSE
subv <- c('a', 'f')
subv %in% v
## returns a vector TRUE FALSE
is.element(subv, v)
## returns a vector TRUE FALSE
于 2013-10-02T12:03:47.433 に答える
106
出力に基づいてオプションをグループ化します。すべての例について、次のベクトルを想定します。
v <- c('z', 'a','b','a','e')
プレゼンスを確認する場合:
%の%
> 'a' %in% v
[1] TRUE
どれか()
> any('a'==v)
[1] TRUE
is.element()
> is.element('a', v)
[1] TRUE
最初の発生を見つけるために:
マッチ()
> match('a', v)
[1] 2
インデックスのベクトルとしてすべての出現を見つけるために:
どれの()
> which('a' == v)
[1] 2 4
すべての出現を論理ベクトルとして見つけるために:
==
> 'a' == v
[1] FALSE TRUE FALSE TRUE FALSE
編集:コメントに記載されている理由でリストからgrep()とgrepl()を削除する
于 2017-06-07T12:52:46.413 に答える
71
any()関数は、読み取り可能なコードを作成します
> w <- c(1,2,3)
> any(w==1)
[1] TRUE
> v <- c('a','b','c')
> any(v=='b')
[1] TRUE
> any(v=='f')
[1] FALSE
于 2009-08-20T22:12:04.627 に答える
37
%in%
次の演算子を使用できます。
vec <- c(1, 2, 3, 4, 5)
1 %in% vec # true
10 %in% vec # false
于 2009-07-23T02:25:52.850 に答える
20
また、次のように使用できる要素「which」の位置を見つけるために
pop <- c(3, 4, 5, 7, 13)
which(pop==13)
ターゲットベクトルに含まれていない要素を見つけるには、次のようにします。
pop <- c(1, 2, 4, 6, 10)
Tset <- c(2, 10, 7) # Target set
pop[which(!(pop%in%Tset))]
于 2013-08-18T01:12:55.913 に答える
11
私はこの目的のためにgrep()とgrepl()が本当に好きです。
grep()は、一致する場所を示す整数のベクトルを返します。
yo <- c("a", "a", "b", "b", "c", "c")
grep("b", yo)
[1] 3 4
grepl()は、一致する場所に「TRUE」が付いた論理ベクトルを返します。
yo <- c("a", "a", "b", "b", "c", "c")
grepl("b", yo)
[1] FALSE FALSE TRUE TRUE FALSE FALSE
これらの関数では大文字と小文字が区別されます。
于 2015-12-03T01:02:53.813 に答える