所以首先我知道有很多与此相关的主题,但是它们似乎涉及整个数据集。但是我想将其应用于特定变量,这给我造成了其他线程中未解决的问题。
所以我想删除变量“ cap”的5%off(低端和高端)。 这就是我尝试过的。
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')"
答案 0 :(得分:1)
如果您只是想删除上限内的变量中的值,则可以使用嵌套的ifelse循环。
类似这样的东西:
library(tidyverse)
nuclear %>%
mutate(cap = ifelse(cap > quantile(cap, probs = .95) |
cap < quantile(cap, probs = .5), NA, cap))
但是,如果要过滤整个数据集,则只需使用相同的代码即可,但要使用过滤器,而不要进行突变。希望这可以帮助。