这可能是基本问题,但我无法弄明白。
所以我有一个函数,它使用data.frame
包从MySQL数据库中获取多个RMySQL
并执行几个操作。
我希望它的输出转到全局环境,因此我可以轻松运行其他功能。
示例
我做了一些阅读,发现<<-
可以用于范围界定,但它似乎不起作用。
myfunc <- function() {
`FETCH DF`
`FETCH DF1`
`PERFORM OPERATIONS`
DF <<- DF
DF1 <<- DF1
}
我只想让DF
和DF1
转到全球环境,以便我可以执行以下操作
myfunc()
DF <- whateverfunc(DF)
DF1 <- whateverfunc(DF1)
重现
你们可以运行以下内容来重现我的SIM卡。
myfunc <- function() {
DF <- data.frame(q = c(503,503,503,503,503), w = c(56,56,56,56,56))
DF1 <- data.frame(V1 = c("A","B"), V2 = c("C", "D"))
DF <<- DF
DF1 <<- DF1
}
myfunc()
答案 0 :(得分:2)
事实上这非常简单。只需考虑环境并分配给.GlobalEnv
。
myfunc <- function() {
DF <- data.frame(q = c(503,503,503,503,503), w = c(56,56,56,56,56))
DF1 <- data.frame(V1 = c("A","B"), V2 = c("C", "D"))
.GlobalEnv$DF <- DF
.GlobalEnv$DF1 <- DF1
}
# only run this if needed
#rm(DF, DF1)
myfunc()
ls(pattern = "DF")
#[1] "DF" "DF1"
不需要<<-
。