1

我正在尝试为不同的对象类编写子集方法,我希望用户能够以与使用该subset.data.frame函数相同的方式执行该方法。我已经阅读了一些相关文章,例如thisthis,但我认为它们不是这里的解决方案。我相信我使用了错误的环境,但我对环境和substitute函数的了解还不够,无法弄清楚为什么这段代码的前半部分有效但后半部分无效。谁能解释我在下面做错了什么,然后如何制作一个lsubset可以gear == 4作为第二个参数的工作函数?抱歉,如果我的搜索错过了类似的问题.. 谢谢!

# create a list of mtcars data frames
mtlist <- list( mtcars , mtcars , mtcars )
# subset them all - this works
lapply( mtlist , subset , gear == 4 )


# create a function that simply replicates the task above
lsubset <- 
    function( x , sset ){
        lapply( x , subset , sset )
    }

# this does not work for some reason
lsubset( mtlist , gear == 4 )
4

1 回答 1

5

关于什么:

lsubset <- 
    function( x , ... ){
        lapply( x , subset , ... )
    }

lsubset( mtlist , gear == 4 )
于 2013-07-01T15:18:54.313 回答