在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 之外的所有内容。
这可能吗?
感谢。
答案 0 :(得分:2)
for( x in setdiff(ls(myEnv), "configData") )
和
for(x in grep("configData", ls(myEnv), value=TRUE, invert=TRUE))
两者都很好,谢谢。
顺便说一句,很酷!通过使用前导“。”我不知道隐藏它。 ...所以对我来说最好的解决方案是确保configData在源文件中变为.configData,这样ls()就不会显示它。