【发布时间】:2016-09-09 10:42:15
【问题描述】:
我有一个从https://www.r-bloggers.com/fun-with-rprofile-and-customizing-r-startup/ 复制的 .Rprofile 但是,当我加载我的 R 会话时,env$ 中的函数不起作用,env 中没有的函数可以完美运行,这里是示例:
sshhh <- function(a.package){
suppressWarnings(suppressPackageStartupMessages(
library(a.package, character.only=TRUE)))
}
auto.loads <-c("dplyr", "ggplot2")
if(interactive()){
invisible(sapply(auto.loads, sshhh))
}
.env <- new.env()
attach(.env)
.env$unrowname <- function(x) {
rownames(x) <- NULL
x
}
.env$unfactor <- function(df){
id <- sapply(df, is.factor)
df[id] <- lapply(df[id], as.character)
df
}
message("n*** Successfully loaded .Rprofile ***n")
加载 R 后,我可以输入 sshhh 并显示功能,但如果我输入 unfactor 则显示 object not found
有什么帮助吗?我应该把所有功能都放在我的工作区吗???
【问题讨论】:
-
也许你应该
attach(.env)在你的所有函数都没有中途定义之后 -
我会
attach(.env)看看它是否有效,虽然我已经添加了它 -
在将函数添加到 .env 后需要附加。
-
ps 鉴于现在创建包几乎毫不费力,因此可能值得创建一个并向其中添加您的函数,以节省附加环境的麻烦。