R 滤波器未按预期工作

标签 r

新手 R 问题:为什么我的 bool 向量没有按下面预期的那样进行过滤?我不知道为什么它只过滤第一个元素而不过滤第三个和第五个元素。

> nums = seq(1,6); nums
[1] 1 2 3 4 5 6
> filter = c(TRUE,FALSE,TRUE,FALSE,TRUE,FALSE)
> nums[filter]
[1] 1 3 5      #<<==WORKS AS EXPECTED
> nums[-filter]
[1] 2 3 4 5 6  #<<==NOT EXPECTED, EXPECTING 2 4 6

顺便说一句,我已经尝试过这个并且它有效,但我认为您可以省略带有负号的向量子集中的项目...

> nums[!filter]
[1] 2 4 6

最佳答案

由于-filter返回-1,0,-1,0,-1,0,我假设R返回nums[-1] 并忽略 -filter 向量的其余部分。显然 !filter 是正确的处理方法。

关于R 滤波器未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46271773/

相关文章:

基于多列的 R 条件计数器

rCharts - 像 gvisMerge 一样组合两个 rCharts

r - 与另一个圆弧重叠时自动弯曲圆弧

c++ - 如何在声明后将 NumericVector 初始化为特定大小?

r - 如何更有效地计算滚动协方差

r - 如何让 x 轴文本具有垂直方向(不旋转角度 = 90/270)

r - 是否有类似 rollapply for data.frame 的功能

r - R中的非线性最小二乘曲线拟合

r - R中混淆矩阵的平均值

r - R 中的 cv.glmnet 是否为二进制数据返回双 MSE?