Подмножество вектора с использованием другого логического вектора в R
Используя следующие два вектора R, я хочу извлечь подмножество valMe
используя логические значения в boolMe
, Кроме того, я хотел бы иметь два возможных выхода, один, где значения FALSE в boolMe
опущены из valMe
и тот, где значения FALSE заменяются на NA. Дальнейшая иллюстрация того, что я хочу сделать в коде:
вход
boolMe<-c(FALSE, TRUE, TRUE, TRUE, FALSE, TRUE)
valMe<-1:6
Предполагаемый выход
NA 2 3 4 NA 6
или же
2 3 4 6
2 ответа
Решение
Вы можете напрямую индексировать valMe
используя [
оператор:
> valMe[boolMe]
[1] 2 3 4 6
См. Раздел 2.7 вводного руководства для более подробной информации.
Точно так же, если вы хотите НС:
> valMe[!boolMe] <- NA
> valMe
[1] NA 2 3 4 NA 6
!
отменяет логическое логическое значение, поэтому вы выбираете значения, которые хотите пропустить. Затем, в прикосновении к R awesomeness, вы назначаете NA выбранным значениям.