我想在函数中创建一个数据框并将其返回到工作区,但是每次调用该函数时都能够命名该数据框(通过将文本字符串作为函数参数传递)。以下是我最好的猜测,但没有做到。
func = function(named.df = "NA"){
df <- data.frame(c(1,2,3), c('a','b','c'))
assign(named.df, df)
}
func("my.data.frame")
答案 0 :(得分:4)
这是一个非常不寻常的请求,你确定你真的想创建一堆不同的data.frame varaiables而不是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")