gpt4 book ai didi

rm() 似乎没有清空我的 R 工作区

转载 作者:行者123 更新时间:2023-12-02 06:33:03 25 4
gpt4 key购买 nike

我正在尝试清除我的 R 工作区。我在任何线程中发现的任何内容似乎都不起作用 - 我一直在谷歌搜索并尝试解决方案几个小时:(

当我打开 R 并输入 ls 时,控制台会显示上一个 session 中的所有代码:

function (name, pos = -1L, envir = as.environment(pos), all.names = FALSE, 
pattern)
{
if (!missing(name)) {
nameValue <- try(name, silent = TRUE)
if (identical(class(nameValue), "try-error")) {
name <- substitute(name)
if (!is.character(name))
name <- deparse(name)
warning(gettextf("%s converted to character string",
sQuote(name)), domain = NA)
pos <- name
}
else pos <- nameValue
}
all.names <- .Internal(ls(envir, all.names))
if (!missing(pattern)) {
if ((ll <- length(grep("[", pattern, fixed = TRUE))) &&
ll != length(grep("]", pattern, fixed = TRUE))) {
if (pattern == "[") {
pattern <- "\\["
warning("replaced regular expression pattern '[' by '\\\\['")
}
else if (length(grep("[^\\\\]\\[<-", pattern))) {
pattern <- sub("\\[<-", "\\\\\\[<-", pattern)
warning("replaced '[<-' by '\\\\[<-' in regular expression pattern")
}
}
grep(pattern, all.names, value = TRUE)
}
else all.names
}
<bytecode: 0x2974f38>
<environment: namespace:base>

如果我输入 rm(list=ls()) 然后再次输入 ls,我会得到完全相同的响应——即,上一个 session 的代码没有被删除。

顺便说一下,我输入的 ls 没有括号。用括号输入 ls() 会返回 character(0)

我还尝试通过 RStudio 清除环境,甚至删除 ~/.Rdata 文件。什么都不会清除此工作区。每次我重新启动 R 并输入 ls 时,所有旧代码仍然存在。

我已经尝试过 this thread 中的提示,但它们对我不起作用。

知道为什么会发生这种情况吗?谢谢!

最佳答案

您看到的是 ls 函数的源代码。当您输入不带括号的函数名称时,您将看到该函数的完整源代码(前提是该函数位于附加到搜索路径的包之一中,或位于全局环境中)。

当您看到 character(0) 作为调用 ls() 的结果时,这意味着全局环境中没有对象。 ls 称为 home 的基础包与全局环境不同,无法删除其中的对象。

当调用 character(0)ls()rm(list=ls()) 的结果时,就成功清除了全局环境中的对象。

关于rm() 似乎没有清空我的 R 工作区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28035992/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com