Измените значения вектора на 0 и 1 - PullRequest
0 голосов
/ 23 апреля 2020

Из вектора я хотел бы сделать несколько значений 0 и несколько значений 1. Это не работает, почему?

  a <- c(1,34,5,3,6,67,3,2)


a[c(1,3,5)] <- 0 # works
a[!c(1,3,5)] <- 1 # doesnt work

Должно выглядеть

   a
    [1] 0 1 0 1 0 1 1 1

Ответы [ 3 ]

3 голосов
/ 23 апреля 2020

! для логических значений. Попробуйте -

a[-c(1,3,5)] <- 1
a
#[1] 0 1 0 1 0 1 1 1
2 голосов
/ 23 апреля 2020

Можно попробовать

> +!!replace(a,c(1,3,5),0)
[1] 0 1 0 1 0 1 1 1
1 голос
/ 23 апреля 2020

Мы можем создать логический индекс с помощью %in%

a[!seq_along(a) %in% c(1, 3, 5)] <- 1
a
#[1] 0 1 0 1 0 1 1 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...