r - 如何过滤管道内的标准偏差

标签 r tidyverse

是否有一种有效的方法可以过滤掉 2.5 标准以下的数字。管道内的偏差? 我目前计算标准。 dev 管道外的值,然后在管道中使用它进行过滤。 我确信必须有一种更有效的方法来完成此任务。

set.seed(125)
nd <- data.frame( x = rnorm(1000, 3, .1))

我目前的方法

sdx <- sd(nd$x) * 2.5 + mean(nd$x)
sdx1 <- sd(nd$x) * -2.5 + mean(nd$x)


library(tidyverse)
nd %>% filter(x < sdx, x > sdx1) %>% .$x %>% hist

最佳答案

您可以使用 abs() 重新排列您的等式以简化并且只使用一次 sd():

... %>%
  filter(abs(x - mean(x)) < 2.5 * sd(x))

# or use the built-in `scale()` function
... %>% 
  filter(abs(scale(x)) < 2.5)

# or, as in comments, use between
... %>%
  filter(between(x, x - 2.5 * sd(x), x + 2.5 * sd(x)))

# or some between instead of abs()
... %>% 
  filter(between(scale(x), -2.5, 2.5))

关于r - 如何过滤管道内的标准偏差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54934599/

相关文章:

r - 在 R magrittr 管道末尾使用 $ 美元符号返回向量

R bigrquery : Exceeded rate limits

r - 如何重新排序搜索路径?

r - 关于如何根据 R 中的条件删除行的任何想法?

python - pairplot() 中的相关值

r - 在 Dplyr 中评估多行

r - 在格子中绘制选定的随机效应观测值

r - 使用 a.m./p.m 解析时间戳

r - 按 ID 将数据帧分成 10 天的间隔

r - Hmisc 之后加载 tidyverse 时出现评估错误