r - R中向量的subset()

标签 r subset

我已经基于 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/

相关文章:

r - Knitr 生成非常大的 html 文件

sql - 在多个数据集中查找相同的行

r - 在 R 中绘制具有不同日期的两个时间序列

python - 如何在最小值和最大值之间对 pandas 数据框进行分类/标记

mysql - 如何通过R向MySQL添加追加数据?

r - 使用 dplyr 以可变时间间隔过滤

MySQL:查询行的子集

r - 基于存储在独立有序向量中的值对对数据帧进行子集

删除包含零的行

r - 根据周围的行值子集数据框