medo 假设: 有两个函数: f1 = function (x) x+1 # index : "x" f2 = function (x) x-1 # index: "y" 一个向量: xy = c( "x","y","y","x","x") 想要的结果: 类似c( f1,f2,f2,f1,f1)函数序列格式。 能想到的方式是用lapply + 设计一个内部包含if的函数,然后逐一判断。不知有没有其他更优美、更快的实现方式?
medo R的if else、switch 对应一向量的判断语句,如果对应数学计算,一种方式是借鉴sign、delta函数(http://souptonuts.sourceforge.net/readme_sqlite_tutorial.html)将判断语句变成加减乘法的向量化处理,但对函数的选择就不能用这种方法。
medo 一个处理方式: f1 = function (x) x+1 # index : "x" f2 = function (x) x-1 # index: "y" xy = c( "x","y","y","x","x") c(f1,f2)[match(xy,c("x","y"))]