如何在分组数据中返回每组的离群值列表

问题描述 投票:0回答:1

在下面称为MyData的数据帧中,对每个人进行7次测量(Sub1:Sub7)。个体由唯一的ID数字标识。几个人被分为Location的每个级别。对于每个Sub中的每个Location,我想设置一个阈值来定义异常值,并返回这些异常值的列表。我可以通过对Location的每个唯一级别进行子设置来做到这一点:(APNG <- MyData%>%filter(Location == "APNG"),然后使用summary()函数获取每个的第一和第三四分位数,为每个创建一个阈值:thresh1 Subs唯一的Location,然后将它们全部连接起来。用这种方法最好的替代方法是什么?

这是我的数据的示例:

> dput(MyData)
structure(list(State = structure(c(2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 10L, 10L, 10L, 10L, 10L, 
10L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 10L, 10L, 10L, 10L, 10L, 
10L, 10L, 10L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 5L, 5L, 5L, 5L, 
5L, 5L, 5L, 5L, 5L, 5L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 4L, 
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 9L, 9L, 9L, 9L, 9L, 9L, 
9L, 9L, 9L, 9L, 9L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 
6L, 6L, 6L, 6L, 6L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 
8L, 8L, 8L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 12L, 
12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L), .Label = c("DE", 
"FL", "GA", "MA", "MD", "ME", "NC", "NH", "NY", "SC", "VA", "VT"
), class = "factor"), Location = structure(c(1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 4L, 
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 
7L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 12L, 14L, 14L, 14L, 14L, 
14L, 14L, 14L, 14L, 18L, 18L, 18L, 18L, 18L, 18L, 18L, 18L, 18L, 
16L, 16L, 16L, 16L, 16L, 16L, 16L, 16L, 16L, 16L, 17L, 17L, 17L, 
17L, 17L, 17L, 17L, 20L, 20L, 20L, 20L, 20L, 20L, 22L, 22L, 22L, 
22L, 22L, 22L, 22L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 9L, 9L, 9L, 
9L, 9L, 9L, 9L, 9L, 15L, 15L, 15L, 15L, 15L, 15L, 15L, 15L, 15L, 
15L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 
10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 11L, 11L, 
11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 11L, 13L, 13L, 13L, 13L, 
13L, 13L, 13L, 13L, 13L, 13L, 13L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 
6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 
5L, 5L, 5L, 5L, 5L, 5L, 5L, 19L, 19L, 19L, 19L, 19L, 19L, 19L, 
19L, 19L, 19L, 19L, 21L, 21L, 21L, 21L, 21L, 21L, 21L, 21L, 21L, 
21L), .Label = c("APNG", "BATO", "BLEA", "CACT", "CHAG", "CHOG", 
"COTR", "DTU", "HAB", "LOP", "MASV", "NEAR", "NGUP", "OYLE", 
"PIRT", "PIY", "PKE", "PONO", "PPP", "ROG", "VONG", "YENQ"), class = "factor"), 
    Sex = structure(c(1L, 1L, 1L, 2L, 1L, 1L, 2L, 2L, 2L, 2L, 
    1L, 1L, 2L, 2L, 2L, 1L, 1L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 1L, 
    1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 1L, 1L, 
    2L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 1L, 2L, 
    2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 2L, 2L, 2L, 2L, 1L, 
    1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 2L, 1L, 1L, 2L, 1L, 
    2L, 1L, 2L, 1L, 1L, 2L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 
    2L, 1L, 1L, 1L, 2L, 1L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 1L, 1L, 
    1L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 
    1L, 2L, 1L, 1L, 1L, 2L, 1L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 1L, 
    1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 1L, 2L, 2L, 1L, 1L, 1L, 
    1L, 1L, 2L, 1L, 1L, 1L, 2L, 1L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 
    1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 1L, 2L, 2L, 1L, 1L, 
    1L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 1L, 2L, 2L, 2L, 1L, 2L, 2L, 
    2L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 2L), .Label = c("F", 
    "M"), class = "factor"), ID = 1:216, Sub1 = c(0.03, 0.03, 
    0.03, 0.04, 0.04, 0.03, 0.03, 0.03, 0.03, 0.03, 0.04, 0.03, 
    0.04, 0.03, 0.03, 0.03, 0.02, 0.04, 0.03, 0.03, 0.03, 0.02, 
    0.04, 0.04, 0.02, 0.03, 0.02, 0.03, 0.05, 0.03, 0.03, 0.03, 
    0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 0.03, 0.04, 0.03, 
    0.04, 0.06, 0.03, 0.03, 0.03, 0.03, 0.02, 0.03, 0.03, 0.03, 
    0.04, 0.03, 0.02, 0.02, 0.04, 0.03, 0.04, 0.03, 0.03, 0.03, 
    0.05, 0.03, 0.03, 0.04, 0.03, 0.02, 0.04, 0.02, 0.03, 0.02, 
    0.02, 0.04, 0.03, 0.02, 0.03, 0.03, 0.05, 0.04, 0.03, 0.02, 
    0.03, 0.05, 0.02, 0.04, 0.03, 0.05, 0.03, 0.04, 0.02, 0.03, 
    0.02, 0.03, 0.03, 0.03, 0.02, 0.05, 0.03, 0.03, 0.04, 0.02, 
    0.02, 0.04, 0.05, 0.03, 0.03, 0.02, 2.03, 2.03, 2.03, 2.04, 
    2.04, 2.03, 2.03, 2.03, 2.03, 2.03, 2.04, 2.03, 2.04, 2.03, 
    2.03, 2.03, 2.02, 2.04, 2.03, 2.03, 2.03, 2.02, 2.04, 2.04, 
    2.02, 2.03, 2.02, 2.03, 2.05, 2.03, 2.03, 2.03, 2.03, 2.03, 
    2.03, 2.03, 2.03, 2.03, 2.03, 2.03, 2.04, 2.03, 2.04, 2.06, 
    2.03, 2.03, 2.03, 2.03, 2.02, 2.03, 2.03, 2.03, 2.04, 2.03, 
    2.02, 2.02, 2.04, 2.03, 2.04, 2.03, 2.03, 2.03, 2.05, 2.03, 
    2.03, 2.04, 2.03, 2.02, 2.04, 2.02, 2.03, 2.02, 2.02, 2.04, 
    2.03, 2.02, 2.03, 2.03, 2.05, 2.04, 2.03, 2.02, 2.03, 2.05, 
    2.02, 2.04, 2.03, 2.05, 2.03, 2.04, 2.02, 2.03, 2.02, 2.03, 
    2.03, 2.03, 2.02, 2.05, 2.03, 2.03, 2.04, 2.02, 2.02, 2.04, 
    2.05, 2.03, 2.03, 2.02), Sub2 = c(0.69, 1.28, 1.27, 2.25, 
    1.05, 1.76, 1.57, 1.09, 0.68, 1.35, 0.85, 1.55, 0.12, 0, 
    0.58, 1.13, 0.1, 1.9, 0.54, 1.48, 0.8, 0.52, 1.76, 1.77, 
    1.24, 0.63, 0.63, 0.57, 0.63, 0.53, 1.32, 1.79, 1.16, 1.11, 
    1.1, 1.92, 1.06, 1.18, 0.43, 0.67, 0.75, 2.37, 3.93, 0.3, 
    2.8, 1.25, 0.9, 1.32, 0.5, 0.4, 0.72, 0.34, 0.12, 0.89, 0.69, 
    1.13, 1.22, 0.88, 4.13, 1.27, 0.62, 2.9, 2.42, 0.9, 0.4, 
    1.29, 1.61, 0.3, 1.47, 0.36, 1.27, 0.84, 1.81, 0.18, 0.47, 
    1.01, 0.85, 0.59, 1.73, 0.72, 0.5, 0.83, 0.9, 0.81, 0.59, 
    2.84, 2.24, 2.68, 1.18, 1.36, 0.84, 1.79, 1.01, 0.34, 0.41, 
    2.22, 0.51, 0.42, 1.26, 2.26, 1.79, 1.43, 1.3, 1.8, 2.21, 
    1.65, 2.39, 0.31, 2.69, 3.28, 3.27, 4.25, 3.05, 3.76, 3.57, 
    3.09, 2.68, 3.35, 2.85, 3.55, 2.12, 2, 2.58, 3.13, 2.1, 3.9, 
    2.54, 3.48, 2.8, 2.52, 3.76, 3.77, 3.24, 2.63, 2.63, 2.57, 
    2.63, 2.53, 3.32, 3.79, 3.16, 3.11, 3.1, 3.92, 3.06, 3.18, 
    2.43, 2.67, 2.75, 4.37, 5.93, 2.3, 4.8, 3.25, 2.9, 3.32, 
    2.5, 2.4, 2.72, 2.34, 2.12, 2.89, 2.69, 3.13, 3.22, 2.88, 
    6.13, 3.27, 2.62, 4.9, 4.42, 2.9, 2.4, 3.29, 3.61, 2.3, 3.47, 
    2.36, 3.27, 2.84, 3.81, 2.18, 2.47, 3.01, 2.85, 2.59, 3.73, 
    2.72, 2.5, 2.83, 2.9, 2.81, 2.59, 4.84, 4.24, 4.68, 3.18, 
    3.36, 2.84, 3.79, 3.01, 2.34, 2.41, 4.22, 2.51, 2.42, 3.26, 
    4.26, 3.79, 3.43, 3.3, 3.8, 4.21, 3.65, 4.39, 2.31), Sub3 = c(1.32, 
    0.19, 0.27, 0.73, 0.41, 0.37, 0.89, 1.35, 0.49, 1.32, 0.69, 
    0, 0.57, 0.24, 0.23, 0.71, 0, 0, 0, 0.58, 0.32, 1.1, 0.45, 
    0.61, 0.38, 0.3, 0.01, 0.06, 0.48, 0.62, 0.64, 1.96, 0.61, 
    0.43, 0.25, 0.34, 0.17, 0.57, 0.1, 0.6, 1.07, 0.44, 0.12, 
    0.55, 0.08, 0.56, 0.59, 0.66, 0.44, 0.58, 0.75, 0.99, 0.77, 
    0.57, 0.35, 0.18, 0.16, 0.31, 0.04, 0.17, 0.46, 0.19, 0.8, 
    0.61, 1.14, 0.3, 0.08, 0.25, 0.78, 1.07, 0.38, 0.17, 0.42, 
    0.48, 0.55, 0.74, 2.98, 1.96, 0.51, 0.63, 0, 0.52, 0.32, 
    0.23, 0.31, 0.09, 0.06, 0.26, 0.23, 0.58, 1.49, 0.46, 0.33, 
    0.37, 1.16, 0.91, 0.41, 0.72, 0.2, 0.84, 0.71, 0.56, 0.34, 
    0.68, 0.81, 0.52, 0.78, 0.19, 3.32, 2.19, 2.27, 2.73, 2.41, 
    2.37, 2.89, 3.35, 2.49, 3.32, 2.69, 2, 2.57, 2.24, 2.23, 
    2.71, 2, 2, 2, 2.58, 2.32, 3.1, 2.45, 2.61, 2.38, 2.3, 2.01, 
    2.06, 2.48, 2.62, 2.64, 3.96, 2.61, 2.43, 2.25, 2.34, 2.17, 
    2.57, 2.1, 2.6, 3.07, 2.44, 2.12, 2.55, 2.08, 2.56, 2.59, 
    2.66, 2.44, 2.58, 2.75, 2.99, 2.77, 2.57, 2.35, 2.18, 2.16, 
    2.31, 2.04, 2.17, 2.46, 2.19, 2.8, 2.61, 3.14, 2.3, 2.08, 
    2.25, 2.78, 3.07, 2.38, 2.17, 2.42, 2.48, 2.55, 2.74, 4.98, 
    3.96, 2.51, 2.63, 2, 2.52, 2.32, 2.23, 2.31, 2.09, 2.06, 
    2.26, 2.23, 2.58, 3.49, 2.46, 2.33, 2.37, 3.16, 2.91, 2.41, 
    2.72, 2.2, 2.84, 2.71, 2.56, 2.34, 2.68, 2.81, 2.52, 2.78, 
    2.19), Sub4 = c(0.63, 0.05, 0.2, 0.41, 0.43, 0.54, 0.26, 
    0.78, 0.13, 0.8, 0.47, 0.65, 0, 0.22, 0.45, 0.85, 0.47, 0, 
    0.62, 0.59, 0.14, 0.8, 0.9, 0.88, 0.56, 0.56, 0.47, 0.24, 
    0.62, 1.77, 0.56, 0.99, 0.21, 0.9, 0.62, 0.58, 0.41, 0.97, 
    0.2, 0.9, 0.68, 0.52, 0.14, 1.27, 0.63, 0.51, 0.12, 0.61, 
    0.31, 0.43, 0.62, 1.18, 0.95, 0.59, 0.39, 0.26, 0.53, 0.77, 
    0.4, 0.39, 0, 0.19, 0.82, 1.1, 0.46, 0.25, 0.29, 0.2, 2.01, 
    0.36, 0.62, 0.54, 0.48, 0.87, 0.66, 1.46, 2.59, 1.37, 1.28, 
    0.99, 0.71, 0.32, 0.64, 0.66, 0.47, 0.48, 0.38, 0.67, 0.18, 
    1.02, 0.54, 0.53, 0.25, 0.43, 1.02, 0.58, 0.58, 0.48, 0.2, 
    0.7, 0.38, 0.28, 0.65, 1.21, 1.03, 0.38, 0.6, 0.44, 2.63, 
    2.05, 2.2, 2.41, 2.43, 2.54, 2.26, 2.78, 2.13, 2.8, 2.47, 
    2.65, 2, 2.22, 2.45, 2.85, 2.47, 2, 2.62, 2.59, 2.14, 2.8, 
    2.9, 2.88, 2.56, 2.56, 2.47, 2.24, 2.62, 3.77, 2.56, 2.99, 
    2.21, 2.9, 2.62, 2.58, 2.41, 2.97, 2.2, 2.9, 2.68, 2.52, 
    2.14, 3.27, 2.63, 2.51, 2.12, 2.61, 2.31, 2.43, 2.62, 3.18, 
    2.95, 2.59, 2.39, 2.26, 2.53, 2.77, 2.4, 2.39, 2, 2.19, 2.82, 
    3.1, 2.46, 2.25, 2.29, 2.2, 4.01, 2.36, 2.62, 2.54, 2.48, 
    2.87, 2.66, 3.46, 4.59, 3.37, 3.28, 2.99, 2.71, 2.32, 2.64, 
    2.66, 2.47, 2.48, 2.38, 2.67, 2.18, 3.02, 2.54, 2.53, 2.25, 
    2.43, 3.02, 2.58, 2.58, 2.48, 2.2, 2.7, 2.38, 2.28, 2.65, 
    3.21, 3.03, 2.38, 2.6, 2.44), Sub5 = c(1.14, 1.38, 1.5, 1.43, 
    1.65, 1.34, 1.29, 1.72, 1.32, 1.17, 1.19, 1.35, 1.34, 1.06, 
    1.24, 1.33, 1.2, 1.31, 1.29, 1.37, 1.42, 1.08, 1.77, 1.32, 
    1.2, 1.14, 1.48, 0.98, 1.33, 1.65, 1.24, 1.43, 1.41, 1.2, 
    1.42, 1.09, 1.04, 1.57, 0.78, 1.37, 0.99, 1.4, 1.13, 1.34, 
    1.35, 1.23, 0.93, 0.94, 1.02, 1.16, 1.08, 0.96, 1.33, 1.19, 
    1.25, 1.44, 1.62, 1.27, 1.4, 1.4, 1.29, 1.53, 1.43, 1.33, 
    1.25, 1.82, 1.45, 1.36, 1.38, 1.34, 1.29, 1.86, 1.15, 1.31, 
    1.21, 1.23, 1.42, 1.57, 1.23, 0.99, 1.33, 1.74, 1.03, 1.33, 
    1.41, 1.01, 0.97, 1.46, 1.55, 1.04, 1.22, 1.19, 1.74, 1.64, 
    1.35, 1.34, 1.21, 1.55, 1.31, 1.5, 1.45, 1.21, 0.83, 1.17, 
    1.25, 1.54, 1.5, 1.11, 3.14, 3.38, 3.5, 3.43, 3.65, 3.34, 
    3.29, 3.72, 3.32, 3.17, 3.19, 3.35, 3.34, 3.06, 3.24, 3.33, 
    3.2, 3.31, 3.29, 3.37, 3.42, 3.08, 3.77, 3.32, 3.2, 3.14, 
    3.48, 2.98, 3.33, 3.65, 3.24, 3.43, 3.41, 3.2, 3.42, 3.09, 
    3.04, 3.57, 2.78, 3.37, 2.99, 3.4, 3.13, 3.34, 3.35, 3.23, 
    2.93, 2.94, 3.02, 3.16, 3.08, 2.96, 3.33, 3.19, 3.25, 3.44, 
    3.62, 3.27, 3.4, 3.4, 3.29, 3.53, 3.43, 3.33, 3.25, 3.82, 
    3.45, 3.36, 3.38, 3.34, 3.29, 3.86, 3.15, 3.31, 3.21, 3.23, 
    3.42, 3.57, 3.23, 2.99, 3.33, 3.74, 3.03, 3.33, 3.41, 3.01, 
    2.97, 3.46, 3.55, 3.04, 3.22, 3.19, 3.74, 3.64, 3.35, 3.34, 
    3.21, 3.55, 3.31, 3.5, 3.45, 3.21, 2.83, 3.17, 3.25, 3.54, 
    3.5, 3.11), Sub6 = c(0.2, 0.15, 0.16, 0.14, 0.19, 0.12, 0.14, 
    0.35, 0.29, 0.25, 0.06, 0.16, 0.18, 0.65, 0.18, 0.12, 0.42, 
    0.09, 0.13, 0.12, 0.22, 0.49, 0.18, 0.11, 0.29, 0.16, 0.18, 
    0.15, 0.46, 0.19, 0.15, 0.19, 0.1, 0.09, 0.11, 0.14, 0.1, 
    0.31, 0.53, 0.32, 0.23, 0.18, 0.14, 0.38, 0.19, 0.1, 0.14, 
    0.08, 0.21, 0.13, 0.08, 0.08, 0.26, 0.14, 0.17, 0.09, 0.09, 
    0.22, 0.26, 0.09, 0.3, 0.16, 0.17, 0.09, 0.12, 0.17, 0.14, 
    0.34, 0.12, 0.21, 0.1, 0.27, 0.11, 0.13, 0.15, 0.17, 0.21, 
    0.16, 0.12, 0.36, 0.16, 0.17, 0.27, 0.32, 0.15, 0.13, 0.14, 
    0.15, 0.1, 0.26, 0.25, 0.08, 0.25, 0.19, 0.38, 0.08, 0.64, 
    0.71, 0.1, 0.18, 0.12, 0.13, 0.1, 1.17, 0.14, 0.19, 0.14, 
    0.24, 2.2, 2.15, 2.16, 2.14, 2.19, 2.12, 2.14, 2.35, 2.29, 
    2.25, 2.06, 2.16, 2.18, 2.65, 2.18, 2.12, 2.42, 2.09, 2.13, 
    2.12, 2.22, 2.49, 2.18, 2.11, 2.29, 2.16, 2.18, 2.15, 2.46, 
    2.19, 2.15, 2.19, 2.1, 2.09, 2.11, 2.14, 2.1, 2.31, 2.53, 
    2.32, 2.23, 2.18, 2.14, 2.38, 2.19, 2.1, 2.14, 2.08, 2.21, 
    2.13, 2.08, 2.08, 2.26, 2.14, 2.17, 2.09, 2.09, 2.22, 2.26, 
    2.09, 2.3, 2.16, 2.17, 2.09, 2.12, 2.17, 2.14, 2.34, 2.12, 
    2.21, 2.1, 2.27, 2.11, 2.13, 2.15, 2.17, 2.21, 2.16, 2.12, 
    2.36, 2.16, 2.17, 2.27, 2.32, 2.15, 2.13, 2.14, 2.15, 2.1, 
    2.26, 2.25, 2.08, 2.25, 2.19, 2.38, 2.08, 2.64, 2.71, 2.1, 
    2.18, 2.12, 2.13, 2.1, 3.17, 2.14, 2.19, 2.14, 2.24), Sub7 = c(0.01, 
    0, 0, 0.01, 0, 0, 0.01, 0.01, 0.02, 0.03, 0.01, 0, 0.03, 
    0, 0.02, 0, 0, 0, 0.01, 0.03, 0.03, 0.02, 0.02, 0.02, 0.01, 
    0.01, 0.01, 0, 0, 0.05, 0.02, 0.04, 0.02, 0, 0.02, 0.02, 
    0.02, 0.04, 0.01, 0.02, 0.04, 0.02, 0.01, 0.01, 0.01, 0.01, 
    0.03, 0.02, 0, 0.02, 0.05, 0.14, 0, 0.01, 0, 0.01, 0.01, 
    0, 0.01, 0.02, 0.01, 0.02, 0.01, 0.03, 0.05, 0.06, 0.03, 
    0.02, 0.11, 0.05, 0.02, 0.02, 0, 0.01, 0, 0.01, 0.06, 0.04, 
    0.02, 0.02, 0, 0.02, 0.01, 0.02, 0.01, 0, 0.01, 0.01, 0.02, 
    0.01, 0.02, 0.01, 0, 0.01, 0.06, 0.01, 0.02, 0.01, 0.01, 
    0.03, 0.02, 0.03, 0.03, 0.02, 0.09, 0, 0.19, 0.02, 2.01, 
    2, 2, 2.01, 2, 2, 2.01, 2.01, 2.02, 2.03, 2.01, 2, 2.03, 
    2, 2.02, 2, 2, 2, 2.01, 2.03, 2.03, 2.02, 2.02, 2.02, 2.01, 
    2.01, 2.01, 2, 2, 2.05, 2.02, 2.04, 2.02, 2, 2.02, 2.02, 
    2.02, 2.04, 2.01, 2.02, 2.04, 2.02, 2.01, 2.01, 2.01, 2.01, 
    2.03, 2.02, 2, 2.02, 2.05, 2.14, 2, 2.01, 2, 2.01, 2.01, 
    2, 2.01, 2.02, 2.01, 2.02, 2.01, 2.03, 2.05, 2.06, 2.03, 
    2.02, 2.11, 2.05, 2.02, 2.02, 2, 2.01, 2, 2.01, 2.06, 2.04, 
    2.02, 2.02, 2, 2.02, 2.01, 2.02, 2.01, 2, 2.01, 2.01, 2.02, 
    2.01, 2.02, 2.01, 2, 2.01, 2.06, 2.01, 2.02, 2.01, 2.01, 
    2.03, 2.02, 2.03, 2.03, 2.02, 2.09, 2, 2.19, 2.02)), class = "data.frame", row.names = c(NA, 
-216L))
r loops outliers
1个回答
0
投票

这是一个输出列表,其中包含每个Sub的异常值的列表:

library(data.table)
setDT(data)

iqrOutliers = function(x,multiplier = 1, na.rm = F){
  Q3 <- quantile(x, 0.75, na.rm = na.rm) 
  Q1 <- quantile(x, 0.25, na.rm = na.rm)  
  iqr = Q3 - Q1

  topLimit = Q3 + multiplier*iqr
  botLimit = Q1 - multiplier*iqr

  list("top" = topLimit,
       "bot" = botLimit)
}

listOutliers <- function(x){
  limits <- iqrOutliers(x)
  data[x <= limits$bot | x >= limits$top]
}


outliers_list <- lapply(data[,list(Sub1,Sub2,Sub3,Sub4,Sub5,Sub6,Sub7)], listOutliers)

由于使用1.5 IQR的样本数据没有异常值,所以我将第一个函数的乘数参数更改为1以产生结果。

© www.soinside.com 2019 - 2024. All rights reserved.