【问题标题】:r function in function arguments + apply函数参数中的 r 函数 + 应用
【发布时间】:2017-11-10 17:55:48
【问题描述】:

我在使用同一个函数中的多个函数并调用生成的参数时遇到了麻烦。我正在使用一个更复杂的函数,可以简化如下:

 func.essai <- function(x) {
 g <- sample(seq(1,30), x)
 i <- sample(x,1)
 func.essai.2 <- function(y,i) {
  z <- y+i
 }
 h <- sapply(g,func.essai.2(y,i))
}
sq <- seq(1,4)
lapply(sq, func.essai)

我正在使用在func.essai 开头生成的参数(取决于x)作为func.essai.2 的固定输入,这里是i,并作为要通过的向量sapply 函数,这里是 g。此代码无法正常工作 - 它无法识别 y 和/或 i。我该如何重写代码来做到这一点?

【问题讨论】:

  • 预期输出是什么?而且变量 y 没有在任何地方定义,是吗?
  • 为每个 sq 值和每个 g 值生成的 z (=y+i) 列表
  • sapply 的第二个参数必须是一个函数,通过添加参数(y,i) 传递函数的结果。

标签: r function arguments apply


【解决方案1】:

我认为你得到的错误是因为你使用了 sapply。这应该可以代替包含sapply 的行:

 h <- sapply(g,func.essai.2, i)

请参阅 ?sapply,它告诉您应该在所应用的函数后面提供额外的参数。

【讨论】:

  • 另一种方法是使用匿名函数:sapply(g, function(x) func.essai.2(x, i))
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-05
  • 2016-12-19
  • 2017-05-03
  • 2011-10-13
  • 2019-03-29
相关资源
最近更新 更多