代码之家  ›  专栏  ›  技术社区  ›  tushaR

使用Lapply应用具有两个参数的函数

  •  0
  • tushaR  · 技术社区  · 10 年前

    我已经创建了一个名为testFunc的测试函数,它需要两个参数。

    testFunc<-function(x,y){
      length(x)
      nrow(y)
    }
    

    现在我想使用lappy将此函数应用于列表,保持y参数不变。

    考虑一个测试列表,testList:

    testList<-list(a=c(1,2,3,4,5,5,6),b=c(1,2,4,5,6,7,8))
    

    我们可以使用lapply在testList$a和testList$b上以相同的y值运行testFunc吗?

    我试过这个电话:

    lapply(X = testList, FUN = testFunc, someDataFrame)
    

    但我总是得到一些DataFrame的长度作为输出。我是不是遗漏了一些显而易见的东西。

    2 回复  |  直到 10 年前
        1
  •  1
  •   vasanthcullen    10 年前

    将函数更改为

    testFunc<-function(x,y){
      return(c(length(x), nrow(y)))
    }
    

    默认情况下,R函数返回上次计算的值

        2
  •  1
  •   asb    10 年前

    最简单的方法是使用命名变量:

    lapply(X = testList, FUN=testFunc, y=someDataFrame)