我需要抛弃变量的异常值。 我想减少变量的上10%。 然而,我不知道如何找出哪些是我的10%。 如果我在30处随机剪切,我会得到3.45%的上限。
dat$T102_01[dat$T102_01 < 30]
有没有办法告诉r不要取值&lt; 30但是前90%的值?
由于我不想做出基于内容的决定(30以上的任何内容都是不切实际的),最好采取我所声明的所有变量的上10%。
我会非常感谢任何评论
抱歉,我无法添加我的情节照片。分布是倾斜的,大多数值在0-30之间,非常的视图值在30-100之间
答案 0 :(得分:2)
我会使用分位数函数如下:
x <- rnorm(50)
p90 <- quantile(x = x,probs = .9)
want <- x[x<p90]
答案 1 :(得分:0)
您可以通过sort
执行此操作,并通过它找到90%的值:
vec <- rnorm(1000)
cut <- sort( vec )[ round( length( vec ) * 0.9 ) ]
vec <- vec[ vec < cut ]
因此我们对向量进行排序,并将向量中的值作为cut
点的90%。然后我们使用cut
点仅获取主矢量的底部90%。