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

如何在llply中传递多个数据类型?

r
  •  1
  • Maiasaura  · 技术社区  · 15 年前

    我有一个函数,它需要一个S4对象和一个数据帧作为参数。

    但功能类似 lapply llply 例子: new_list=llply(list, function)

    我可以用交替的S4对象和数据制作一个列表,但是 铺层

    在某种意义上,我所寻找的类似于2D列表(其中每一行有S4 obj和数据,一次推送一行)。

    那我该怎么做呢?

    这是我的问题的一个更一般的版本。如果我有这样的功能:

    foobar <- function(dat, threshold=0.5, max=.99)
    {
    ...
    }
    

    我想通过这个函数推送一个列表,我可以:

    new_list=llply(list, foobar)
    

    但是,如果我还想为threshold或max传递一个非默认值,那么在这种情况下我应该如何传递?

    2 回复  |  直到 15 年前
        1
  •  1
  •   Charles    15 年前

    功能如下 lapply ... 传递给函数的参数的参数。如:

    lapply(list, foobar, somearg='nondefaultvalue')
    

    如果有多个不同的参数(如 somearg 中每个元素的值 list ),然后将它们打包为列表中的一对,或者转到 mapply :

    mapply(foobar, list, somearg=c('vectorof', 'nondefault', 'values')
    
        2
  •  0
  •   Gary Li    15 年前

    可能你可以试试这个:

    只是个建议,我不太确定这是否有效。