我如何(并且可以)在 if 和 else 函数中对命令使用不同的运算符?
x <- as.numeric(c(1,1,4,5,6,7,8))
if(mean(x) < 3){operator.is <- <}else{operator.is <- >}
sub <- subset(x, x operator.is 2)
#expected results
sub
[1] 3 4 5 6 7 8
我想根据 if 语句将运算符存储在“operator.is”中。但是,我似乎无法存储运算符并在子集函数中使用它。后来想用这个操作符来进行子集化。如果没有这个,我将需要复制并传递整个代码才能使用其他运算符。有没有什么优雅而简单的方法来解决这个问题?
提前致谢
可以用 % 符号分配运算符:
`%op%` = `>`
vector <- c(1:10)
vector2 <- subset(vector, vector %op% 5)
在你的情况下:
x <- as.numeric(c(1,1,4,5,6,7,8))
if(mean(x) < 3){`%operator.is%` <- `<`}else{`%operator.is%` <- `>`}
sub <- subset(x, x %operator.is% 2)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句