我以以下数据为例:
fruit.region <- data.frame(full =c("US red apple","bombay Asia mango","gold kiwi New Zealand"), name = c("apple", "mango", "kiwi"), country = c("US","Asia","New Zealand"), type = c("red","bombay","gold"))
我希望 R 能够查看“完整”(名称)列中没有“名称”、“国家”和“类型”值的其他项目,并查看它们是否与其他项目匹配。例如,如果 full 的第 4 行带有“bombay US mango”,它将能够识别该国家/地区应为 US,bombay 应在 type 下,mango 应在 name 下。
这就是我到目前为止所拥有的,它只是(逻辑上)识别项目匹配的位置:
new.entry <- c("bombay US mango")
split.new.entry <- strsplit(new.entry, " ")
lapply(split.new.entry, function(x){
check = grepl(x, fruit.region, ignore.case=TRUE)
print(check)
})
我有点停滞不前..我已经阅读了许多正则表达式帖子和 r 帮助指南,grepl
但无法找到一个很好的解决方案。我所拥有的并没有完全识别逻辑“匹配”向量,因此我无法对不同元素进行子集化并使用 if 语句连接。理想情况下,我希望能够以 data.table 形式替换这些元素,因为我的 fruit.region 实际上会在数据表中。有人对最佳方法有任何建议吗?