2017-10-07 125 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

您需要grepl代替grep

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"