我已经基于 subset()
编写了以下函数,我觉得很方便:
ss <- function (x, subset, ...)
{
r <- eval(substitute(subset), data.frame(.=x), parent.frame())
if (!is.logical(r))
stop("'subset' must be logical")
x[r & !is.na(r)]
}
所以,我可以写:
ss(myDataFrame$MyVariableName, 500 < . & . < 1500)
代替
myDataFrame$MyVariableName[ 500 < myDataFrame$MyVariableName
& myDataFrame$MyVariableName < 1500]
这似乎是其他人可能已经开发出解决方案的东西 - 包括我可能错过的核心 R 中的某些内容。已经有什么东西了吗?
最佳答案
我意识到 Ken 提供的解决方案比仅选择范围内的项目更通用(因为它应该适用于任何逻辑表达式),但这确实提醒我 Greg Snow 在他的教学演示包中有比较中缀运算符:
library(TeachingDemos)
x0 <- rnorm(100)
x0[ 0 %<% x0 %<% 1.5 ]
关于r - R中向量的subset(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8933431/