我有两个字符向量。第一个包含一些自然灾害的参考:“雪崩”,“山洪”,“雷暴风” ...等。 第二个具有相似数据但略有不同的数据:“雪崩”,“洪水”,“热”,“风”等。...我试图找到的不仅是精确的,而且还是第一个的部分匹配一个在第二个。所以我想我可以分开做。
第一个很直接:match(dt_event,ref_event)。现在,我还需要将“雷电大风”和“洪水泛滥”视为来自ref_event的“洪水”和“狂风”,从而也获得索引而不是NA。如果有一种方法可以在一个命令中同时进行完全匹配和部分匹配,那会更好。预先感谢。
dt_event <- c("avalanche","flash flood","thunderstorm winds")
ref_event <- c("avalanche","flood","winds")
match(dt_event,ref_event)
1 NA NA
答案 0 :(得分:0)
假设两个向量是有序的,并且您想按元素进行比较:
dt_event[unlist(Map(grepl, ref_event, dt_event))]
或更一般的情况:
dt_event[sapply(ref_event, function(x) which(grepl(x, dt_event)))]