首页 > 解决方案 > R检查多个变量中的异常值

问题描述

我需要检查异常值的数据,并且我有 67 个不同的变量。所以我不想手动做。这是我手动检查的代码(我要检查三个因素 - voiceID、性别和 VP)。但我不知道我应该如何将其更改为遍历列的循环。

features %>%
  group_by(voiceID, gender, VP) %>%
  identify_outliers(meanF0)

这些值都是数字。输出应该告诉我哪些因素的哪些行是异常值。感谢帮助

标签: rgroup-byoutliers

解决方案


的输出identify_outlierstibble具有多列的,一次可以采用一个变量。变量名可以加引号或不加引号。在这种情况下,我们可以group_split通过分组变量获取数据,然后遍历感兴趣的列,并应用identify_outliers

library(dplyr)
library(purrr)
library(rstatix)
nm1 <- c("score", "score2")
 demo.data %>%
     group_split(gender) %>%
        map(~  map(nm1, function(x) .x %>% 
                identify_outliers(x))) 

如果我们想计算异常值,

features %>%
   group_by(voiceID, gender, VP)  %>%
   summarise(across(everything(), ~ length(boxplot(., plot = FALSE)$out)))

推荐阅读