使用mapply()或其任何系列成员通过向量调用函数

时间:2017-08-12 13:24:19

标签: r apply lapply mapply

我有一个有几个向量和非向量参数的函数:

   myfun <- function( number , vector1, vector2, number2) {
      # test function thanks to Chi Pak
      temp <- number * vector1 + max(vector2) * number2
      return(temp)
   }

我想执行以下操作:

  1. numbernumberS
  2. 的向量调用此函数
  3. 对于上面的每个数字,我希望使用从列表vector1获得的每个listofvectors1中的一个来调用它。
  4. 每次通话时,
  5. vector2number2都相同。
  6. 为了澄清一点,这就是我对循环的处理方式:

    numberS <- c(1,2,3)
    listofvectors1 <- list(c(1,2,3), c(5,6,7,8), c(0,1) ) # Obviously has the same length as numberS
    vector2 <- c(0.5,3,1)
    number2 <- 3.14
    
    for (i in 1:length(numberS)){
       myfun(numberS[i], listofvectors1[[i]], vector2, number2)
    }
    

    我想使用像apply()这样的函数执行此操作,我一直在尝试使用mapply(),但我无法使其正常工作,因为它要么嵌套所有向量,要么只是没有&# 39; t嵌套任何东西。

0 个答案:

没有答案