我已经将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”的数据帧吗?
感谢您的帮助
答案 0 :(得分:0)
分别使用rm()和ls()的list和pattern参数。
这应该有效。
rm(list = ls(pattern = '^.*(E10|U91|V95|V98)$'))
答案 1 :(得分:0)
使用@Patrick Rutz答案的偏差解决:
rm(list = ls(pattern = '^.*([^E10|U91|V95|V98])$'))