我有一个数据框:
d<-data.frame(name=c("brown cat", "blue cat", "big lion", "tall tiger",
"black panther", "short cat", "red bird",
"short bird stuffed", "big eagle", "bad sparrow",
"dog fish", "head dog", "brown yorkie",
"lab short bulldog"), label=1:14)
我想要搜索name
列,如果出现了"cat"、"lion"、"tiger"和"panther"这些词,我想要将字符字符串feline
分配给一个新列和相应的行species
。
如果出现了"bird"、"eagle"和"sparrow"这些词,我想要将字符字符串avian
分配给一个新列和相应的行species
。
如果出现了"dog"、"yorkie"和"bulldog"这些词,我想要将字符字符串canine
分配给一个新列和相应的行species
。
理想情况下,我想把这些信息存储在列表或类似的东西中,可以在脚本开头方便地更新什么符合feline
、avian
和canine
的标准。
这个问题在这里(How to create new column in dataframe based on partial string matching other column in R) 差不多被回答了,但它没有解决这个问题中存在的多个名称匹配的情况。