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

时间:2010-09-23 23:09:24

标签: r

我有一个需要S4对象和数据框作为参数的函数。

lapplyllply等函数只允许一个列表和一个函数。 例如:new_list=llply(list, function)

我可以使用交替的S4对象和数据制作单个列表,但是llply将一次推送一个列表项,这意味着它将是S4对象或数据(该函数不能仅使用一个或者其他)。

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

那我该怎么做呢?

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

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

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

new_list=llply(list, foobar)

但是如果我还想为阈值或最大值传递非默认值,我将如何在此上下文中这样做?

2 个答案:

答案 0 :(得分:1)

lapply这样的函数通常有一个...参数参数传递给函数。例如:

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

如果您有多个不同的参数(例如,somearg中每个元素的值不同list),那么您可以将它们作为对包装在列表中,或转向类似{{的函数1}}:

mapply

答案 1 :(得分:0)

可能你可以试试这个:

使每个列表项本身成为一个列表,其中包含S4对象和数据框。

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