Р: Как удалить конкретную строку в матрице?

У меня есть матрица, такая как:

> ex2
      [,1] [,2]     [,3]     [,4]        [,5]
 [1,]    1 1912 55.40000 49.06132   6.3386825
 [2,]    9 1944 53.76998 46.90905   6.8609322
 [3,]   10 1948 52.31764 48.65840   3.6592392
 [4,]   11 1952 44.71056 50.34861  -5.6380584
 [5,]   13 1960 50.08676 47.58916   2.4975960
 [6,]   15 1968 49.59538 57.16136  -7.5659793
 [7,]   17 1976 51.05214 43.28484   7.7672977
 [8,]   18 1980 44.69676 57.55835 -12.8615819
 [9,]   23 2000 50.26476 49.67494   0.5898139
[10,]   25 2008 53.68885 49.11433   4.5745194

Я хочу удалить строку со значениями, относящимися к 2000 году (поэтому в данном случае я хочу удалить строку 9).

Матрица не обязательно содержит значения для 2000. Например, это может быть:

> ex3
     [,1] [,2]     [,3]     [,4]     [,5]
[1,]   13 1960 50.08676 43.08453 7.002226
[2,]   25 2008 53.68885 49.92650 3.762

Заранее спасибо.

2 ответа

Решение

Используйте обычные правила подмножества. Например:

ex2[ex2[,2]!=2000,]

что означает "взять все строки, у которых второй столбец отличается от 2000".

if(2000%in%ex2[,2]){
  newdata=ex2[-which(ex2[,2]==2000),]
}
Другие вопросы по тегам