新手 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/