在R中使用多个选项替换字符串

时间:2017-03-23 10:33:32

标签: r string

我的问题:我被要求比较农药清单,这些清单可以是100到500种化合物长度。我没有导入和传播它们的问题但是,如果名称不匹配,则列不对齐。命名是农药世界的创造性运动。硫丹或Endosulphan。 op-DDT或DDT(o,p)。

我的观点是,如果我在Excel中创建了一个字典,其中第一列保留了首选名称(pref),而右列保留了替代品(最多五个),我可以通过农药列表来标准化命名之前传播它然后进行对齐。

我尝试创建一个替代字符串,省略空字段,然后使用sub进行替换。

例如,我将首选名称设为

pref <- "HCH-gamma (Lindane)"

和一串替代品

check_list <- "BHC-gamma (Lindane)|BHC - gamma (Lindane)|Lindane"

然后使用

运行一个名为df的循环
Combined$Name[i] <- sub(check_list, pref, Combined$Name[i])

最开始的   名称&lt; -c(&#34; HCH-γ(林丹)&#34;,&#34; BHC-γ(林丹)&#34;,&#34; BHC-γ(林丹)&#34; &#34;林丹&#34)

最终应该是

名称&lt; - c(&#34; HCH-gamma(林丹)&#34;,&#34; HCH-gamma(林丹)&#34;,&#34; HCH-gamma(林丹)& #34;,&#34; HCH-gamma(林丹&#34;))

但没有。结果很奇怪,例如

"BHC - gamma (HCH-gamma (Lindane))"; 

显然我没有正确的语法,但这是我第一次尝试这样的字符串操作,无法理解我做错了什么。任何指导将不胜感激。或者有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

感谢apom。

ifelse(grepl(searchTerm, myVector), newTerm, myVector)
相关问题