0

我正在研究 R 项目中的一些函数,用于附加和分离包,但我无法paste()在函数内部detach()工作(这最终将成为 for 循环的一部分):

> library(ggplot2)
> (.packages())
 [1] "ggplot2"   "stringr"   "readr"     "stats"     "graphics" 
 [6] "grDevices" "utils"     "datasets"  "methods"   "base"
> detach(paste("package", "ggplot2", sep = ":"), unload = TRUE)
Error in detach(paste("package", "ggplot2", sep = ":"), unload = TRUE) : 
  invalid 'name' argument

但如果我这样做,它工作正常:

> detach("package:ggplot2", unload = TRUE)
> (.packages())
[1] "stringr"   "readr"     "stats"     "graphics"  "grDevices"
[6] "utils"     "datasets"  "methods"   "base"

paste()返回正确的东西:

> paste("package", "ggplot2", sep = ":")
[1] "package:ggplot2"

所以我不确定这里出了什么问题......

4

1 回答 1

1

尝试添加character.only = TRUEforce = TRUE

detach(paste("package", "ggplot2", sep = ":"), unload = TRUE, character.only = TRUE, force = TRUE)

它可能会打印一些警告,但会分离ggplot2

于 2021-09-08T04:32:58.183 回答