gpt4 book ai didi

r - 将条件作为函数参数传递

转载 作者:行者123 更新时间:2023-12-03 03:43:16 24 4
gpt4 key购买 nike

有没有办法将条件作为参数传递?例如:

#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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com