我正在尝试为不同的对象类编写子集方法,我希望用户能够以与使用该subset.data.frame
函数相同的方式执行该方法。我已经阅读了一些相关文章,例如this和this,但我认为它们不是这里的解决方案。我相信我使用了错误的环境,但我对环境和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 )