我在将函数应用于参数向量时遇到问题.关键是,没有一个参数是向量.
我试图用do.call
命令应用我的函数,我的try 如下:
do.call("bezmulti", list(dat$t, as.list(getvarnames(n, "a"))))
其中,bezmulti
是一个函数,它接受一个向量(dat$t
)和一个不定数的单个数字,这些数字由函数getvarnames
以向量的形式提供,我需要拆分.
问题是这个列表没有按我所希望的方式工作-我希望的方式是:
[[1]]
#vector goes here
[[2]]
#the
[[3]]
#numbers
[[4]]
#go
[[5]]
#here
然而,我提出的解决方案和所有其他解决方案提供的列表要么以某种方式嵌套,要么只有两个元素,这两个元素都是向量.是否有办法强制列表采用上述格式?
编辑:本文中使用的函数如下所示
bezmulti <- function(t,...) {
coeff <- list(...)
n <- length(coeff)-1
sumco <- rep(0, length(t))
for (i in c(0:n)) {
sumco=sumco+coeff[[i+1]]*choose(n, i)*(1-t)^(n-i)*t^i
}
return(sumco)
}
getvarnames <- function(n, charasd) {
vec=NULL
for (j in c(1:n)) {
vec <- append(vec, eval(str2expression(paste0(charasd, as.character(j)))))
}
return(vec)
}