我可以在R中创建一个函数返回一个命名对象吗?

SiK*_*iHe 1 r function return-type

我想编写一个创建时间序列的函数,但我希望它能够生成时间序列的名称作为调用的一部分.

有点

makeTS(my.data.frame, string(dateName), string(varName)){
-create time series tsAux from my.data.frame, dateName and varName
-create string tsName
(-the creation of tsAux is not a problem)
assign(tsName, tsAux)
return(tsName)
} 
Run Code Online (Sandbox Code Playgroud)

这也许并不奇怪,这会返回字符串tsName,但有什么方法可以让它返回一个命名对象?

我试过了

do.call('<-', list(tsName, tsAux))
Run Code Online (Sandbox Code Playgroud)

我也尝试过使用

as.name(tsName) <- tsAux
Run Code Online (Sandbox Code Playgroud)

但似乎没什么用.

我知道

tsName <- makeTS2(my.data.frame, dateName, varName) 
Run Code Online (Sandbox Code Playgroud)

会做的伎俩(makeTS2()只是生成时间序列tsAux并返回它),但有没有办法让它与一个函数调用一起工作?

谢谢!

Ari*_*man 8

可以吗?当然:

makeTS <- function(dat, varName) {
  result <- NA
  assign( varName, result, envir = .GlobalEnv )
  result
}

> makeTS(NA, "test")
[1] NA
> test
[1] NA
Run Code Online (Sandbox Code Playgroud)

如若你?几乎肯定不是.