【发布时间】:2014-06-22 12:48:37
【问题描述】:
我有一个过滤函数列表f1,f2,f3,f4,....,它采用矩阵m 和许多选项作为输入,并返回矩阵行的子集作为输出。现在我希望能够以有序的方式定义一些元过滤功能设置metaf1, metaf2, metaf3,...,这将指定指定 nr 过滤功能的顺序应用,例如首先是f2,然后是f3,分别使用给定的选项。我想将这些过滤设置存储在说类"metafiltering" 的列表中,然后让另一个函数应用给定metafiltering 对象中指定的过滤步骤。我的想法将能够以这种方式允许以有序的方式存储和应用过滤设置。我将如何以 R 中最优雅的方式实现这一目标?或者是否有其他方便的方法来实现这样的目标?
编辑:举个例子,说我有矩阵
m=replicate(10, rnorm(20))
和过滤功能(这些只是示例,显然我的更复杂:-))
f1=function(m,opt1,opt2) {
return(m[(m[,2]>opt1)&(m[,1]>opt2),])
}
f2=function(m,opt1) {
return(m[(m[,3]>opt1),])
}
我已经定义了特定类的以下metafiltering 设置,这些设置将指定两个必须按顺序应用于矩阵 m 的函数
metafilterfuncs=list(fun1=f1(opt1=0.1,opt2=0.2),fun2=f2(opt1=0.5))
class("metafilterfuncs")="metafiltering"
然后我的问题是如何使用指定的函数和设置将任意metafiltering 函数对象的过滤步骤应用于给定矩阵 m?
【问题讨论】:
-
一个可重现的例子会改善你的问题。
-
@Roland 我刚刚说得更具体了 - 希望这有助于理解我的问题?