Я работаю с большим количеством данных, хранящихся в матрице, и я хотел бы удалить все строки, значения которых в одном столбце не попадают в диапазон [0,1]
. Если матрица M
(просто пример матрицы 3 на 3), я попытался с этим кодом
m<-matrix(c(1,0,2,0.7,0.8,0.5,-0.6,0.11,0.4),3,3)
[,1] [,2] [,3]
[1,] 1 0.7 -0.60
[2,] 0 0.8 0.11
[3,] 2 0.5 0.40
Для этого примера я должен удалить первую и третью строки. Единственное решение, которое приходит на ум, основано на циклах и
for(i in 1:n){
array[i]<-sum(m[i,]<0, na.rm=TRUE)+sum(m[i,]>1, na.rm=TRUE)
}
for(i in 1:nrow(m)){
if (array[i]!=0){
m<-m[-i,]
array<-array[-i]
}
}
Есть ли более эффективное решение? Спасибо!