我有一个映射功能如下,
sub.func <- function(x,y){
if(agrepl(x,y)){
return(x)
}
else{
return(y)
}
}
现在我想应用它来比较两个不同大小的列表,比如myList1
and myList2
,这样对于 的每个元素myList1
,sub.func
将在其中查找匹配项myList2
,如果是,将替换为 的元素myList2
。这样所有的元素myList2
都被映射到。如何在不使用循环的情况下实现这一点?可以使用应用函数的任何变体吗?
例如
myList1 <- c("a b", "c d", "e f")
myList2 <- c("1", "a b d", "d", "e f g h", "2 3 a c d", "c g")
所需的输出与 myList2 的长度相同,但尽可能映射到 myList1
output <- c("1", "a b", "d", "e f", "c d", "c g")