R反转正则表达式为ls

时间:2014-09-07 15:42:23

标签: regex r

在R中,我从包含各种时间序列和一个配置对象/向量的文件中加载一个环境。

我想在循环中处理环境中的所有时间序列,但是想要排除配置对象。

目前我的代码是这样的:

for(x in ls(myEnv)) {
    if(x!="configData") {

        # do something, e. g.
        View(myEnv[[x]], x)
    }
}

有没有办法使用ls-function的 pattern 参数来省略if子句?

for(x in ls(myEnv, pattern="magic regex picks all but *configData*")) {

    # do something, e. g.
    View(myEnv[[x]], x)
}

我找到的所有关于模式的示例均基于白名单方法(肯定列表),但我希望获得除 configData 之外的所有内容。

这可能吗?

感谢。

1 个答案:

答案 0 :(得分:2)

for( x in setdiff(ls(myEnv), "configData") ) 

for(x in grep("configData", ls(myEnv), value=TRUE, invert=TRUE))

两者都很好,谢谢。

顺便说一句,很酷!通过使用前导“。”我不知道隐藏它。 ...所以对我来说最好的解决方案是确保configData在源文件中变为.configData,这样ls()就不会显示它。