2017-10-07 18 views
0

私はテーブルの下のように持っている:私は凧のために、私はそれを見つける行ごとに検索する必要があり、今Rは、文字列の配列に文字列を検索する方法

X Y 
a kite 
b kiterunner 
c skite 
d sklite 
e skiter 
f runner 

、私は追加する必要があります「Yay」のZ列、それ以外の場合は「Nay」。基本的には次のように出力される。

X Y   Z 
a kite  Yay 
b kiterunner Yay 
c skite  Yay 
d sklite  Nay 
e skiter  Yay 
f runner  Nay 

私はgrepを試してみましたが、それは全体の列はすべて「イェーイ」Sを入れて検索します。私はここでいくつかの基本的なものを逃していると思うが、実際にそれを理解することはできません...ほぼ24時間寝ていませんでした。助けてください。今

マイコード:

Table$Z <- ifelse(grep("kite", Table$Y), "Yay", "Nay") 

答えて

2

あなたはgrepの代わりにgreplが必要になります。

Table$Z <- ifelse(grepl("kite", Table$Y), "Yay", "Nay") 

結果:

> Table 
    X   Y Z 
1 a  kite Yay 
2 b kiterunner Yay 
3 c  skite Yay 
4 d  sklite Nay 
5 e  skiter Yay 
6 f  runner Nay 

や提案のLMO:

c("Yay", "Nay")[grepl("kite", Table$Y) + 1L] 
+0

せずにこれを行うことができますがありがとうございました。 – Arani

+1

@lmoありがとう!私はそれを私の答えに入れた – h3rm4n

1

私たちはどんなifelse

df1$Z <- with(df1, c("Nay", "Yay")[grepl("kite", Y)+1]) 
df1$Z 
#[1] "Yay" "Yay" "Yay" "Nay" "Yay" "Nay" 
関連する問題