R:将数据框返回到工作区,并从函数参数中命名

BDA*_*BDA 3 r function

我想在函数内创建一个数据框并将其返回到工作区,但另外还能够在每次调用该函数时命名该数据框(通过将文本字符串作为函数参数传递)。以下是我最好的猜测,但没有这样做。

func = function(named.df = "NA"){
  df <- data.frame(c(1,2,3), c('a','b','c'))
  assign(named.df, df)
}

func("my.data.frame")
Run Code Online (Sandbox Code Playgroud)

MrF*_*ick 5

这是一个非常不寻常的请求,您确定要创建一堆不同的 data.frame 变量而不是 data.frames 的命名列表吗?后者对于 R 来说似乎更自然。

但无论如何,您需要指定要分配新 data.frame 的环境。现在您默认使用函数环境,因此在函数运行后它会消失。您可能想在全局环境中分配

func <- function(named.df = "NA") {
  df <- data.frame(c(1,2,3), c('a','b','c'))
  assign(named.df, df, envir=.GlobalEnv)
}

func("my.data.frame")
Run Code Online (Sandbox Code Playgroud)