让我们假设我有以下变量:
a <- c('one','two','three')
b <- c('one|on','two|wo',"three|thre")
c <- c('there is one','there one is ','there is one three two')
我想要一个具有以下结果的新变量:
d
[1] "one" "one" "three"
我要做的是查找例如单词one
oron
是否在文本中,然后将新值分配给one
新变量d
。此外,如果层次结构中有多个值,a
则应来自最后一个值。
我能做的是以下几点:
d <- list()
d[grepl(b[1],c)] <- a[1]
d[grepl(b[2],c)] <- a[2]
d[grepl(b[3],c)] <- a[3]
d <- unlist(d)
同样可以在一个简单的循环中完成。但是还有其他更优雅的方式吗?