【发布时间】:2021-01-10 06:43:48
【问题描述】:
我正在尝试创建一个函数来从全局环境中删除除一到三个项目之外的所有项目。我可以做一个,但不能做两个、三个或更多。使用base R 或rlang 对此提供任何帮助
a <- "a"
b <- c(1,2,3,4)
c <- c("M", "F")
remove_all_but <- function(x){
Sx <- deparse(substitute(x))
rm(list=Sx,envir=sys.frame(-1))
}
remove_all_but(a)
remove_all_but(c(a, b))
#> Warning in rm(list = Sx, envir = sys.frame(-1)): object 'c(a, b)' not found
【问题讨论】:
-
您可以将要删除的变量作为字符传递吗?
remove_all_but("a")和remove_all_but(c("a", "b"))? -
顺便说一句
remove_all_but(a)仅删除a并保留所有其他。我想你想要相反的结果?