我正在构建一个R
函数,该函数要求 a 的大小expression
根据另一个变量的大小而变化。
表达式元素的顺序如下:
1/ 1
2/ "Xts_filled[(locNAs[n] - 1),]"
3/ "Xts_filled[(locNAs[n] - 2),]"
4/ "Xts_filled[(locNAs[n] - 3),]"
...
该表达式有一个规则模式,只有减号后面的数字随着每个元素的添加而变化:它似乎是某种macro
.
这可能R
吗?
我已经使用for
循环和eval(parse(text = ___))
成语破解了它,如下所示:
buildExpr <- function(ARorder){
callList <- list("1", "Xts_filled[(locNAs[n] - 1),]")
if(ARorder - 1) {
for(j in 2:ARorder) {
callList <- c(callList, paste0("Xts_filled[(locNAs[n] -", j, "),]"))
}
}
callExpr <- paste0("c(", paste(callList, collapse = ","), ")")
}
我通过eval(parse(text = buildExpr(3)))
.
有没有更好的办法?