R从异常值中找出相对最大值

时间:2015-08-21 01:52:43

标签: r outliers max

假设我有一个数字向量,我想找到一个常规截止值。例如:

35, 30, 33, 36

在这种情况下,我想只提取一个计算30的子集。在这种情况下,截止值将为x <- c(1, 20, 42, 13, 118, 149, 130, 30, 11, 32, 120, 0.5, 0.03) ,如果没有硬编码确定的截止值,我希望我的代码能够适应不同的数字向量,以便找到截止值。

另一个例子是:

118

在这种情况下,合理的截止值将在quantile左右。

目前我很难对截止值进行编码,因为我正在处理简单的情况,但是我想让这个过程更加模块化以获得更多变量的向量。

1 个答案:

答案 0 :(得分:2)

您可以使用cutoff <- function(y, prob=0.7) y[y > quantile(y, prob)] x <- c(35, 2, 3, 30, 1, 4, 33, 6, 36) cutoff(x) [1] 35 33 36 x <- c(1, 20, 42, 13, 118, 149, 130, 30, 11, 32, 120, 0.5, 0.03) cutoff(x) [1] 118 149 130 120 功能

cutoff(x, 0.8)
[1] 149 130 120

您可以根据需要定义不同的概率

JOIN