如何正确删除r中特定列表元素的异常值?
我试图删除嵌套在分组数据帧列表中的两个特定列(如何正确删除r中特定列表元素的异常值?,r,time-series,lapply,outliers,R,Time Series,Lapply,Outliers,我试图删除嵌套在分组数据帧列表中的两个特定列(var1和var2)的异常值 对于此任务,我正在使用dplyr中的filter()函数和grDevices中的boxplot.stats 这就是我迄今为止所尝试的: library(dplyr) library(grDevices) ########### converting initial df to a list of groups ###################### split_tibble <- function(tibb
var1
和var2
)的异常值
对于此任务,我正在使用dplyr
中的filter()
函数和grDevices
中的boxplot.stats
这就是我迄今为止所尝试的:
library(dplyr)
library(grDevices)
########### converting initial df to a list of groups ######################
split_tibble <- function(tibble, col = 'col') tibble %>% split(., .[, col])
dflist <- split_tibble(df, 'decil')
####### applying function to remove outliers for all list elements ######
dflist <- lapply(dflist , function(df) filter(!var1 %in%
boxplot.stats(var1)$out) %>%
filter(!var2 %in%
boxplot.stats(var2)$out))
库(dplyr)
图书馆(GR设备)
###########将初始df转换为组列表######################
拆分不可拆分的%split(,,,col])
dflist您可以使用dplyr中的新行操作一步一步地执行此操作
library(tidyverse)
df %>%
ungroup() %>%
nest_by(decil) %>%
mutate(out_var1 = list(boxplot.stats(data$var1)$out),
out_var2 = list(boxplot.stats(data$var2)$out),
filtered_df = list(data %>% filter(var1 %in% out_var1 %>% `!`,
var2 %in% out_var2 %>% `!`))) %>%
select(decil,filtered_df) %>%
unnest(filtered_df) %>%
ungroup()
您的函数(df)
不可用;t依赖于df
。一开始就需要df%>%
吗?是的,事实上,在开始时缺少df%>%
。我尽可能地将过程分开,这样你会更容易理解,但你可以直接解决一个df,然后直接在变异时传递该解决方案
library(tidyverse)
df %>%
ungroup() %>%
nest_by(decil) %>%
mutate(out_var1 = list(boxplot.stats(data$var1)$out),
out_var2 = list(boxplot.stats(data$var2)$out),
filtered_df = list(data %>% filter(var1 %in% out_var1 %>% `!`,
var2 %in% out_var2 %>% `!`))) %>%
select(decil,filtered_df) %>%
unnest(filtered_df) %>%
ungroup()