R: Как удалить строки, если элемент в строке удовлетворяет определенной характеристике?
Я пытаюсь выяснить способ удаления строк матрицы, если ячейка в этой строке удовлетворяет определенной характеристике. Например:
> mm <- matrix(c(1,2,3,2,3,4,1,2,3,4),5,2)
> mm
[,1] [,2]
[1,] 1 4
[2,] 2 1
[3,] 3 2
[4,] 2 3
[5,] 3 4
Я хочу удалить строки, если элемент 1-го столбца в этой строке равен 2. В конце я хочу этого:
[,1] [,2]
[1,] 1 4
[2,] 3 2
[3,] 3 4
как я мог это сделать?
а как насчет более общего метода, если вместо удаления всех строк, первый элемент столбца которых равен 2, мне нужно удалить строки, первый элемент столбца которых соответствует набору номера, которые содержатся в списке? Например
delete_list <- c(2,3)
каков наилучший способ сделать это?
спасибо заранее.
2 ответов
просто использовать
mm2 <- mm[mm[,1]!=2,]
это работает, потому что
mm[,1] != 2
возвращает
[1] TRUE FALSE TRUE FALSE TRUE
и по существу вы используете этот логический массив, чтобы выбрать, какие строки выбрать.
Не проверял...
newmat <- mm[mm[,1]!=2,]
это в основном то, что я думаю, что вы после.
Edit: черт, ниндзя на одну минуту!