bri*_*ndk 11 statistics r
假设我通过将矢量绑定在一起来搞乱一些数据,正如我在一个懒惰的周日下午所做的那样.
x <- rnorm(25, mean = 65, sd = 10)
y <- rnorm(25, mean = 75, sd = 7)
z <- 1:25
dd <- data.frame(mscore = x, vscore = y, caseid = z)
Run Code Online (Sandbox Code Playgroud)
我现在有了新的数据帧dd,这太棒了.但是我的先前的切片和切片仍然存在碎屑:
> ls()
[1] "dd" "x" "y" "z"
Run Code Online (Sandbox Code Playgroud)
如果我不再需要"源"列,那么清理工作区的简单方法是什么,但我想保留数据帧?也就是说,既然我已经完成了操作我想要的数据,dd并且没有任何较小的变量可能会无意中掩盖进一步的分析:
> ls()
[1] "dd"
Run Code Online (Sandbox Code Playgroud)
我觉得解决方案必须是形式rm(ls[ -(dd) ])或东西,但我无法弄清楚如何说"请清理一切,但以下的对象."
rcs*_*rcs 11
这是一种使用方法setdiff:
rm(list=setdiff(ls(), "dd"))
Run Code Online (Sandbox Code Playgroud)
Foj*_*sek 10
我会通过创建一个单独的环境来存储所有垃圾变量,使用数据框with(),然后将要保留的数据复制到主环境中.这样做的好处是整洁,但也要保留所有物体,以防再次看到它们.
temp <- new.env()
with(temp, {
x <- rnorm(25, mean = 65, sd = 10)
y <- rnorm(25, mean = 75, sd = 7)
z <- 1:25
dd <- data.frame(mscore = x, vscore = y, caseid = z)
}
)
dd <- with(temp,dd)
Run Code Online (Sandbox Code Playgroud)
这给你:
> ls()
[1] "dd" "temp"
> with(temp,ls())
[1] "dd" "x" "y" "z"
Run Code Online (Sandbox Code Playgroud)
如果你真的想要,你当然可以摆脱垃圾环境.