Подмножество вектора с использованием другого логического вектора в R - PullRequest
8 голосов
/ 26 декабря 2011

Используя следующие два вектора R, я хочу извлечь подмножество valMe, используя логические значения в boolMe. Кроме того, я хотел бы иметь два возможных выхода: один, где значения FALSE в boolMe опущены из valMe, и один, где значения FALSE заменены на NA. Дальнейшая иллюстрация того, что я хочу сделать в коде:

Input

boolMe<-c(FALSE, TRUE, TRUE, TRUE, FALSE, TRUE)
valMe<-1:6

Намеченный выход

NA 2 3 4 NA 6

или

2 3 4 6

Ответы [ 2 ]

11 голосов
/ 26 декабря 2011

Вы можете напрямую индексировать valMe, используя оператор [:

> valMe[boolMe]
[1] 2 3 4 6

Подробнее см. В разделе 2.7 вступительного руководства .

7 голосов
/ 26 декабря 2011

Аналогично, если вы хотите, чтобы NA:

> valMe[!boolMe] <- NA
> valMe
[1] NA  2  3  4 NA  6

! отменяет логическое логическое значение, поэтому вы выбираете значения, которые хотите пропустить.Затем, одним прикосновением к R awesomeness, вы назначаете NA выбранным значениям.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...