0

ベクトルの要素が 2 番目のベクトル内の要素の最初の 4 桁と一致するかどうかを確認しようとしています (それらはネストされた識別子です)。一致を実行する方法がよくわかりません。例えば:

X     Y 
1111  111120
1111  890933
2222  780777
2222  222247

ベクトル y の要素 i の最初の 4 桁がベクトル x の要素 i の数字と一致するかどうかを示すコードを作成したいと思います。例を拡張すると、次のことが期待できます。

True
False
False
True

ご意見ありがとうございます。

4

2 に答える 2

3

を使用applyして行をループし、使用すると機能しgreplます...

apply( df , 1 , function(x) grepl( x[1] , x[2] ) )
#[1]  TRUE FALSE FALSE  TRUE
于 2013-10-22T17:11:41.703 に答える
3

あなたのdata.frameがdfあり、使用substrするとうまくいくとします。

> df$X==as.numeric(substr(df$Y, start=1, stop=4))
[1]  TRUE FALSE FALSE  TRUE

すべてを新しい data.frame にまとめる:

> transform(df, Z=df$X==as.numeric(substr(df$Y, start=1, stop=4)))
     X      Y     Z
1 1111 111120  TRUE
2 1111 890933 FALSE
3 2222 780777 FALSE
4 2222 222247  TRUE

?substrそれがどのように機能するかの詳細については、をご覧ください。

于 2013-10-22T17:11:45.500 に答える