我有一個變量actor
這是一個字符串,幷包含值如"military forces of guinea-bissau (1989-1992)"
和大範圍的其他不同的值是相當複雜的。我一直在使用grep()
找到符合不同類型演員的角色模式。例如,當actor
包含"military forces of"
,不包含"mutiny of"
,並且字符串變量country
也包含在變量actor
中時,我想要將新變量actor_type
編碼爲1
。基於grep返回代碼新變量R
我不知道如何有條件地創建這個新的變量,而不訴諸某種類型的可怕的循環。幫我!
數據看起來大致是這樣的:
| | actor | country |
|---+----------------------------------------------------+-----------------|
| 1 | "military forces of guinea-bissau" | "guinea-bissau" |
| 2 | "mutiny of military forces of guinea-bissau" | "guinea-bissau" |
| 3 | "unidentified armed group (guinea-bissau)" | "guinea-bissau" |
| 4 | "mfdc: movement of democratic forces of casamance" | "guinea-bissau" |
好,所以第一部分工作。我不太明白第二部分會發生什麼。我沒有得到x,x是什麼或指數來自何處,他們選擇了什麼。另外,我知道apply()需要一個函數參數,但是如果我們正在應用grepl(),爲什麼function(x)仍然在apply()調用中。謝謝btw。 – Zach 2012-02-04 21:23:14
'grepl'將一個字符串作爲它的'pattern'參數。要比較國家(第2列)和演員(第1列),你需要''grep''應用'pattern =第2列'的每一行。我做了一個匿名函數來做這個,函數使用的變量是'x'。 '.data.frame'的每一行都作爲'grepl'評估的兩個字符串的向量發送給函數。清晰如泥我相信 ! – Justin 2012-02-04 21:26:20
沒有,這實際上是有道理的。贊同:) – Zach 2012-02-04 21:33:55