我已将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])$'))