R

时间:2018-05-01 10:27:58

标签: r function

这可能是基本问题,但我无法弄明白。

所以我有一个函数,它使用data.frame包从MySQL数据库中获取多个RMySQL并执行几个操作。

我希望它的输出转到全局环境,因此我可以轻松运行其他功能。

示例

我做了一些阅读,发现<<-可以用于范围界定,但它似乎不起作用。

myfunc <- function() {
  `FETCH DF`
  `FETCH DF1`
  `PERFORM OPERATIONS`
  DF <<- DF
  DF1 <<- DF1
}

我只想让DFDF1转到全球环境,以便我可以执行以下操作

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()

1 个答案:

答案 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"

不需要<<-