我在将函数应用于参数向量时遇到问题.关键是,没有一个参数是向量.

我试图用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)
}

推荐答案

我认为你需要做的是:

do.call("bezmulti", c(list(dat$t), as.list(getvarnames(n, "a"))))

例如:

dat= data.frame(t = c(1,2,3,4,6))
c(list(dat$t), as.list(c(8,10,12)))

输出:

[[1]]
[1] 1 2 3 4 6

[[2]]
[1] 8

[[3]]
[1] 10

[[4]]
[1] 12

R相关问答推荐

在水平条形图中zoom x_轴

有没有一种方法可以在子包上使用‘library()’中的‘exclub’参数?

无法在我的情节中表现出显着的差异

R Lubridate:舍入/快照日期时间到一天中最近的任意时间?

Highcharter多次钻取不起作用,使用不同方法

如何从R中的字符串元素中减go 一个数字?

如何根据R中其他列的值有条件地从列中提取数据?

条形图和在Ploly中悬停的问题

如何在所有绘图中保持条件值的 colored颜色 相同?

如何同时从多个列表中获取名字?

R-按最接近午夜的时间进行筛选

在带有`R`中的`ggmosaic`的马赛克图中使用图案而不是 colored颜色

从数据创建数字的命名列表.R中的框

解析嵌套程度极高的地理数据

有没有办法定制Plot(allEffects())面板标题?

如何计算每12行的平均数?

禁用时,SelecizeInput将变得不透明

将边列表转换为路径长度列表

将y轴格式更改为R中的百分比

合并多个数据帧,同时将它们的名称保留为列名?