我的全局环境中有这些文件:
x <- sapply(sapply(ls(), get), is.data.frame)
n = names(x)[(x==TRUE)]
n
[1] "sample_1" "sample_10" "sample_2" "sample_3" "sample_4" "sample_5" "sample_6" "sample_7" "sample_8" "sample_9" "table_i"
Run Code Online (Sandbox Code Playgroud)
我想删除所有以“samp”开头的文件。我找到了可以执行此操作的代码(如何从工作区中仅清除一些特定对象?):
rm(list = apropos("samp_"))
Run Code Online (Sandbox Code Playgroud)
现在,我想学习如何用不同的方式做同样的事情。我找到了另一种方法来查找全局环境中以“samp”开头的所有文件:
nn = grep("samp", n, value = TRUE)
[1] "sample_1" "sample_10" "sample_2" "sample_3" "sample_4" "sample_5" "sample_6" "sample_7" "sample_8" "sample_9"
Run Code Online (Sandbox Code Playgroud)
然后,我尝试删除这些文件:
for (file in nn){
nn[i] <- NULL
}
do.call(file.remove, list(nn))
Run Code Online (Sandbox Code Playgroud)
谢谢你!
您可以使用pattern删除函数的内部:
rm(list = ls(pattern = "^samp"))
Run Code Online (Sandbox Code Playgroud)
或者使用grep:
rm(list = grep("^samp", ls(), value = TRUE))
Run Code Online (Sandbox Code Playgroud)