R中变量组合的极值
我有一个如下的数据集。现在我的问题是多方面的。对于客户端、任务和子任务的每个组合,我想排除前10%的极值。我想要两个数据集,一个是所有组合的极值,另一个是所有组合的正常值R中变量组合的极值,r,outliers,R,Outliers,我有一个如下的数据集。现在我的问题是多方面的。对于客户端、任务和子任务的每个组合,我想排除前10%的极值。我想要两个数据集,一个是所有组合的极值,另一个是所有组合的正常值 client task subtask time a abc t1 12 a abc t2 23 b xyz t3 334 c ijk t1 1 c ijk t1 12 b xyz t1 12 a xyz t2 23 b ijk t3 24 a ijk t2 344
client task subtask time
a abc t1 12
a abc t2 23
b xyz t3 334
c ijk t1 1
c ijk t1 12
b xyz t1 12
a xyz t2 23
b ijk t3 24
a ijk t2 344
c xyz t3 34343
b ijk t2 34
c xyz t3 34
a xyz t1 23
c ijk t1 223
a ijk t1 23
b xyz t3 21
b ijk t1 45
a xyz t2 23
c ijk t3 45
您可以使用分位数查找10%的最高值:
DF <- within(DF,
extreme <- ave(time, #your values
client, task, subtask, #grouping factors
FUN = function(x) x > quantile(x, 0.9)))
然后使用子集来提取所需的值。您还可以使用dplyr包来加速此过程
DF %>%
group_by(client, task, subtask) %>%
mutate(extreme = time > quantile(time, .9))