与gregexpr和字符向量lapply

时间:2017-04-26 19:01:43

标签: r regex vector character lapply

我是使用lapply等的新手。我的代码和数据遵循......

b  = c( "ZFW", "ZTL" )

我有一个更大的字符向量,dfNames(长度= 147),其中包含像......

这样的实例
dfNames[ 113 ] "arr_to_KEWR_in_ZFW"
dfNames[ 147 ] "arr_to_KEWR_in_ZTL"

当我应用此代码时......

indx = which( unlist( lapply( paste( '_in_', b, sep = '' ), function(v){gregexpr( v, dfNames )} ) ) != -1 )

我收到一个indx中的整数列表,其长度至少为294 ...

6  41  58  75 101 118 135 165 200 217 234 260 277 294

在dfNames [indx]上生成......

"all_in_ZFW" "dep_from_KCLT_in_ZFW" "dep_from_KDFW_in_ZFW" "dep_from_KEWR_in_ZFW"
"arr_to_KCLT_in_ZFW"   "arr_to_KDFW_in_ZFW"   "arr_to_KEWR_in_ZFW"   NA                    
NA                     NA                     NA                     NA                    
NA                     NA   

所以,很明显我使用lapply导致R回绕并且我没有从包含pattern =' ZTL'的dfNames返回索引。

抱歉愚蠢的问题。

1 个答案:

答案 0 :(得分:0)

据我所知,您正在寻找

b = c("ZFW", "ZTL" )
lapply(b, function(x) grepl(x, list))