如何删除R中数据集的异常值?

use*_*062 -1 r

谁能告诉我如何删除第一列的异常值并同时保留第二列?我的数据集如下:

Y     X

79  1.00000000

70  1.00000000

10  0.90000000

78  1.00000000

...  ...
Run Code Online (Sandbox Code Playgroud)

Chr*_*rsh 5

您需要定义您的意思但异常值,但例如,假设任何不在均值正负两个标准差范围内的值都是异常值:

m<-mean(df$Y)
sd<-sd(df$Y)
out.u<-m+2*sd
out.l<-m-2*sd
Run Code Online (Sandbox Code Playgroud)

这将用 NA 替换异常值:

rem.out<-ifelse(df$Y>out.u or dfY<out.l,NA,df$Y)
Run Code Online (Sandbox Code Playgroud)

这将删除整行:

no.out<-subset(df,df$Y<out.u & df&Y>out.l)
Run Code Online (Sandbox Code Playgroud)