5

要素がリストにあるかどうかを取得するためにmatchを使用しています。たとえば、私のリストは次のとおりです。

  c("a","b","h","e"...) and so on

要素hがリストにあるかどうかを確認したい場合は、次のようにmatchを使用しています。

  if ("h" %in% v){do something}

リスト内の要素が見つかった場所の位置を取得するにはどうすればよいですか?ありがとう

4

3 に答える 3

6

位置の使用を知りたい場合which

l <- c("a","b","h","e")
which(l=='h') 
[1] 3   # It'll give you the position, 'h' is the third element of 'l'

lこれはベクトルであり、前述のリストではないことに注意してください。

于 2012-10-08T16:55:01.470 に答える
4

位置を知りたい場合は、以下を使用してmatchください。

l <- c("a","b","h","e")
match("h", l)

ここでは違いはありませんが、一般的にははるかに高速です。

于 2012-10-09T14:11:53.793 に答える
3

このwhich関数は、ベクトル内のどこでアイテムが「一致」するかを示します。は%in%、最初の引数と同じ長さの論理ベクトルを返し、if最初の論理値のみを参照するため、それ自体ではうまく機能しません。あなたはこれを行うことができます:

if( any("h" %in& v) ) { do something }

このany関数を使用すると、次の結果を「折りたたむ」ことができます。%in%

于 2012-10-08T16:56:51.870 に答える