我有一个需要S4对象和数据框作为参数的函数。
但lapply
和llply
等函数只允许一个列表和一个函数。
例如:new_list=llply(list, function)
我可以使用交替的S4对象和数据制作单个列表,但是llply
将一次推送一个列表项,这意味着它将是S4对象或数据(该函数不能仅使用一个或者其他)。
在某种意义上,我正在寻找的是类似于2D列表(其中每一行都有S4 obj和数据,并且每次都会推送一行)。
那我该怎么做呢?
这是我的问题的更一般版本。如果我有这样的功能:
foobar <- function(dat, threshold=0.5, max=.99)
{
...
}
我想通过这个函数推送一个列表,我可以这样做:
new_list=llply(list, foobar)
但是如果我还想为阈值或最大值传递非默认值,我将如何在此上下文中这样做?
答案 0 :(得分:1)
像lapply
这样的函数通常有一个...
参数参数传递给函数。例如:
lapply(list, foobar, somearg='nondefaultvalue')
如果您有多个不同的参数(例如,somearg
中每个元素的值不同list
),那么您可以将它们作为对包装在列表中,或转向类似{{的函数1}}:
mapply
答案 1 :(得分:0)
可能你可以试试这个:
使每个列表项本身成为一个列表,其中包含S4对象和数据框。
只是一个建议,我不太确定这是否有效。