Regex ls的R反转正则表达式模式
在R中,我从包含各种时间序列和一个配置对象/向量的文件中加载一个环境 我希望在循环中处理环境中的所有时间序列,但希望排除配置对象 目前我的代码如下:Regex ls的R反转正则表达式模式,regex,r,Regex,R,在R中,我从包含各种时间序列和一个配置对象/向量的文件中加载一个环境 我希望在循环中处理环境中的所有时间序列,但希望排除配置对象 目前我的代码如下: for(x in ls(myEnv)) { if(x!="configData") { # do something, e. g. View(myEnv[[x]], x) } } 有没有办法使用ls函数的pattern参数来省略if子句 for(x in ls(myEnv, pattern="ma
for(x in ls(myEnv)) {
if(x!="configData") {
# do something, e. g.
View(myEnv[[x]], x)
}
}
有没有办法使用ls函数的pattern参数来省略if子句
for(x in ls(myEnv, pattern="magic regex picks all but *configData*")) {
# do something, e. g.
View(myEnv[[x]], x)
}
我能找到的所有模式示例都基于白名单方法(肯定列表),但我希望得到除configData之外的所有示例
这可能吗
谢谢
for( x in setdiff(ls(myEnv), "configData") )
及
两个都很好,谢谢
顺便说一句,酷!我不知道通过使用前导“.”来隐藏它。。。因此,对我来说,最好的解决方案是确保configData在源文件中变成.configData,这样ls()就不会显示它。for(x在setdiff(ls(myEnv),“configData”)之类的东西怎么样?
for(x在grep(“configData”,ls(),value=TRUE,invert=TRUE))…
应该可以工作,如果ls()
使用PCRE,^(?!configData)
的模式本来可以工作,但似乎没有一种方法可以轻松设置perl=TRUE
或invert=TRUE
。如果该配置变量有一个前导“.”使其“隐藏”,这样您就不会有这个问题,那就好了。或者将所有感兴趣的对象放入列表中。如果要对环境中的所有对象应用相同的函数,请查看eapply
(以及用于指定是否包含以点开头的内容的all.names
参数)
for(x in grep("configData", ls(myEnv), value=TRUE, invert=TRUE))