Я попытался подмножить свой вектор с [c(0,0,1,0,1...)]
, но он вернул вектор из 1s для каждого «1» в двоичном вектор, который я намеревался использовать как слайсер, а не ожидаемые значения, которые должны были быть выбраны из вектора слева.Подмножество вектора с 0s и 1s как seq (3) с использованием [c (0,0,1)]
seq(3)[as.logical(c(0,0,1))]
работает отлично, но
seq(3)[c(0,0,1)]
возвращает 1, который я не ожидал. Просто пытайтесь понять, как и почему он возвращает 1, вместо того, чтобы потянуть значение, которое совпадает с ИСТИННЫМ или 1.
Я не думаю, что это выбор из последовательности, я думаю, что его возвращение 1 означает ИСТИННО. Мой реальный вектор намного длиннее, я получаю значение 1 для каждого 1 в slicer (вектор справа). – user3507767
На самом деле нет такой вещи, как «0-й элемент» в Р. Вы, наверное, знаете это, но ваша формулировка звучит так, как будто она есть. –
вы можете проверить, что 'x [c (0,0,1)]' выбирает первый элемент, если вы 'rev (seq (3)) '. Вместо этого вы увидите 3. @RichardScriven True, но вы можете попробовать подмножество с помощью 'x [0]', которое дает вам вектор с нулевой длиной в результате – jamieRowen