我试图在嵌套的ifelse语句中使用grepl来简化包含研究人员所属国家的机构隶属关系的数据列,即'1234 University Way,University,Washington,United States'将成为'美国”。该专栏包含100多个国家的大学。起初我尝试使用grepl:
嵌套ifelse语句H $ FAF1< - ifelse(grepl(“匈牙利”,H $ AF1),“匈牙利”, ifelse(grepl(“美国”,H $ AF1),“美国”,......
等,但我意识到嵌套ifelse语句的限制为50。有谁知道另一种方法吗?我试过写一个函数,但遗憾的是我还不熟悉R。
答案 0 :(得分:1)
csgroen的正则表达式方法的替代方法,您必须手动写下国家/地区,您可以尝试countrycode
- 包,它们已经包含在内,这可能会节省您一些时间...尝试:
countrycode::countrycode(sourcevar = "1234 University Way, University, Washington, United States",
origin = "country.name",
destination = "country.name")
答案 1 :(得分:0)
也许使用str_extract?我做了一个小例子。
min_ex <- c("1234 University Way, University, Washington, United States",
c("354 A Road, University B, City A, Romania"),
c("447 B Street, National C University, City B, China"))
library(stringr)
str_extract(min_ex, regex("United States|Romania|China"))