使用带有S4对象的`lapply`和带有2个参数的自定义函数

时间:2014-04-04 15:26:36

标签: r list function lapply s4

我正在尝试使用myfun(x,y)在S4对象上执行我自己的名为lapply()的函数,但不知道它是否适合这样做。

我的S4对象dblist包含3个广告位,我想使用我的函数填充空图df.para,该函数接收参数df.listdf.para。 (参数df.para用于创建子槽(例如$ Name; $ Eval ......等))

所以我尝试了这个:

> lapply(dblist@df.list, myfun(x,y) , y=dblist@df.para)  
Error: object 'x' not found

以下是对象dblist

的说明
> str(dblist)
Formal class 'dblist' [package ".GlobalEnv"] with 3 slots
  ..@ df.list :List of 102
  .. ..$ :'data.frame': 81 obs. of  3 variables:
  .. .. ..$ Parametre: Factor w/ 81 levels "1.","10.","11.",..: 77 79 76 80 74 81 75 78 1 13 ...
  .. .. ..$ valeur1  : Factor w/ 69 levels "","1/2-1/2","1522",..: 55 27 5 11 20 4 3 2 24 26 ...
  .. .. ..$ valeur2  : Factor w/ 73 levels "","]","a6","b5",..: 2 2 2 2 2 2 2 2 28 21 
...  
.. .. [list output truncated]
  ..@ df.para : list()
  ..@ df.coups: list()

1 个答案:

答案 0 :(得分:0)

我认为问题是你的lapply函数对myfun的参数不够清楚。试试这个:

lapply(X=dblist@df.list, FUN=myfun(x=X,y) , y=dblist@df.para)