2

我试图从一个函数中保留一个分配的对象(构建一个 ts 函数以开始对单变量过程进行建模,我知道很简单!)。我无法找到将对象保留在我的工作区中的方法。仅使用 for 循环就可以正常工作,但我想参数化以下内容:

ts.builder<-function(x,y,z){
  for(i in 9:13){
    assign(paste(x,i,sep="_"),ts(yardstick[1:528,i], freq=24))
    assign(paste(y,i,sep="_"),ts(yardstick[529:552,i], freq=24))
    assign(paste(z,i,sep="_"),ts(yardstick[1:552,i], freq=24))
  }
}

ts.builder("yard.book.training","yard.book.small.valid", "yard.book.valid")

任何指针?我在想它可能需要一个 return 声明,但我还没有发现它有用。

4

1 回答 1

4

未经测试(一个可重现的例子有很大帮助):

ts.builder <- function() {
  xd <- list()
  yd <- list()
  zd <- list()

  for (i in 9:13) {
    xd[[i]] <- ts(yardstick[1:528,i], freq=24)
    yd[[i]] <- ts(yardstick[529:552,i], freq=24)
    zd[[i]] <- ts(yardstick[1:552,i], freq=24)
  }
  list(yard.book.training=xd, yard.book.small.valid=yd, yard.book.valid=zd)
}

l <- ts.builder()

然后这里是返回值:

l$yard.book.training[[9]]

等等

于 2012-12-19T23:44:18.530 回答