x<-matrix(c(0.00009852, -0.00393314, -0.00049056, -0.00117636,
-0.00283716, 0.00136866, -0.00536613, -0.00068090, 0.01528542,
0.01221890, -0.00309366, 0.00379356,-0.00159904, -0.00259300,
-0.00635427, 0.00446363,0.00119367, 0.00079657, 0.00419246,
0.00090068,0.00160321,0.00623682, -0.00010090, -0.00070604),ncol=4)
x<-data.frame(x)
names(x)<-c("active","inactive","injured","rehab")
active inactive injured rehab
1 0.00009852 -0.00536613 -0.00159904 0.00419246
2 -0.00393314 -0.00068090 -0.00259300 0.00090068
3 -0.00049056 0.01528542 -0.00635427 0.00160321
4 -0.00117636 0.01221890 0.00446363 0.00623682
5 -0.00283716 -0.00309366 0.00119367 -0.00010090
6 0.00136866 0.00379356 0.00079657 -0.00070604
Итак, у меня есть этот набор данных, который называется (x).Я хочу
1) найти выброс каждого из столбцов
2) отсканировать столбец, если есть какое-либо значение, которое находится выше / ниже значения выброса
3)переместите столбец с выбросом в новый фрейм данных с именем y.
Задача 1, я использую следующее:
quantile1<-function(k){
quantile(k, 0.25)+IQR(k)
}
quantile3<-function(k){
quantile(k,0.75)+IQR(k)
}
lower_outlier<-apply(x, 2, quantile1)
upper_outlier<-apply(x, 2, quantile3)
View(t(lower_outlier))
active inactive injured rehab
-0.000048750 0.010112565 0.001094395 0.003545148
View(t(upper_outlier))
active inactive injured rehab
0.00232446 0.0227156 0.0045333 0.0069408
Так что теперь у меня есть верхний и нижний пределы выбросов для каждого из столбцов,Как мне перейти к заданию 2 и 3?Я считаю, что один из подходов - это что-то вроде
x <- x[x <= value]
, но я не уверен.Любой совет высоко ценится