首先,我知道有很多关于此的主题,但它们似乎都涉及整个数据集。但我想将它应用于一个特定的变量,这给我带来了其他线程没有解决的问题。
所以我想删除变量“cap”的5%折扣(低端和高端)。这是我试过的。
attach(nuclear)
#variable cap in set nuclear, i want to delete (after inspecting the percentles) for example everything under 5% for cap only.
quantile(cap, c(.025, .050, 0.25, 0.50, .95, .975))
quantile(nuclear$Point, 0.05)
nuclear$cap %>% filter(Point < quantile(nuclear$Point, 0.05))
这就是我得到的
Error in UseMethod("filter_") :
no applicable method for 'filter_' applied to an object of class "c('double', 'numeric')"
如果您只是想删除封顶内变量中的值,那么您可以使用嵌套的ifelse循环。
这样的事情:
library(tidyverse)
nuclear %>%
mutate(cap = ifelse(cap > quantile(cap, probs = .95) |
cap < quantile(cap, probs = .5), NA, cap))
但是如果你想过滤整个数据集,那么只需使用相同的代码,但在过滤而不是变异。希望这可以帮助。