我有一个变量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