有没有办法将条件作为参数传递?例如:
#g is some data'
getIndexesWhen <- function (colname, condition) {
a <- as.vector(g[,colname])
a <- which(a fits condition)
}
然后能够传递条件本身,例如调用类似
getIndexesWhen('GDP','> 435')
之类的东西。还是我需要针对每种情况分别设置功能,例如=,!=,>, 最佳答案
您可以将“大于”部分和“435”部分拆分为getIndexesWhen
函数的参数,而不是对“大于435”使用表达式或函数:
getIndexesWhen <- function(colname, fxn, rhs) {
which(fxn(as.vector(g[,colname]), rhs))
}
现在,您可以获得所需的功能,而无需为每个功能/右侧配对声明用户定义的功能:
g <- iris
getIndexesWhen("Petal.Width", `<`, 0.2)
# [1] 10 13 14 33 38
getIndexesWhen("Petal.Length", `==`, 1.5)
# [1] 4 8 10 11 16 20 22 28 32 33 35 40 49
关于r - 将条件作为函数参数传递,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41229761/