r有条件删除数据帧



我已将XLSX文件导入到R中,并将每个表加载到单独的数据帧中。由于这是一个带有冗余表的大型工作簿,因此我需要有条件地从全球环境中删除一些。最终目标是仅保留将用于自动化时间序列分析的表。

我想删除所有不符合后缀条件的数据帧。我运行但似乎没有任何事情的当前代码是:

for(i in ls()) {
 if(substring(ls()[i], regexpr(pattern = "_", mget(ls()[i]))+1) != "E10" |
  substring(ls()[i], regexpr(pattern = "_", mget(ls()[i]))+1) != "U91" |
  substring(ls()[i], regexpr(pattern = "_", mget(ls()[i]))+1) != "V95" |
  substring(ls()[i], regexpr(pattern = "_", mget(ls()[i]))+1) != "V98") {
    remove(ls()[i])
   }
}

这也会照顾没有后缀示例的数据帧" Sheet127"?

感谢您的帮助

分别使用rm()和ls()的列表和模式参数。

这应该有效。

rm(list = ls(pattern = '^.*(E10|U91|V95|V98)$'))

使用@patrick rutz的偏差解决:

rm(list = ls(pattern = '^.*([^E10|U91|V95|V98])$'))

最新更新