如何在R中使用lapply来评估列表的元素?

时间:2017-09-09 23:53:03

标签: r list lapply

如果在其他地方已经回答了我的道歉。我在R中定义了两个函数,然后将它们嵌套,效果很好。现在我想通过更改第二个函数中的变量来评估这两个嵌套函数。我尝试为更改变量创建list,然后使用lapply评估每个元素,但我收到了错误。

我的代码看起来像这样:

# First function 
FirstFun <- function(a, b, c, d) {
      answer1 <- (a + b)/(1-(0.2*(c/d))-(0.8*(c/d)^2))
      return(answer1)
}
# First function evaluated 
FirstFun(13,387,1728,1980)

# Second function
SecondFun <- function(answer1,c,d) {
      answer2 <- answer1*(1-(0.2*(c/d))-(0.8*(c/d)^2))
      return(answer2)
}

# Nested function evaluated 
SecondFun(FirstFun(13,387,1728,1980),1728,1980)

# Nested function evaluated with elements of a list
c <- list(0:1980)
lapply(c, SecondFun(FirstFun(13,387,1728,1980),c,1980))

1 个答案:

答案 0 :(得分:0)

如果我正确地站着你 - 你正在寻找:

SecondFun(FirstFun(13,387,1728,1980),0:1980,1980)

或者这个:

SecondFun(FirstFun(13,387,1728,0:1980),0:1980,1980)

都返回长度为1981的数字向量。

2件事 - 1.无需列表。范围可行。 2.调用变量'c'是一个坏主意..... c保留