2016-08-13 3 views
0

я увидел следующее в примере на подмножества, и я не понимаю, как я все еще достаточно новое для R.R - Подменю путаница

x <- c(1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7, 8.8, 9.9) 
x[c(TRUE, TRUE, FALSE, FALSE)] 
[1] 1.1 2.2 5.5 6.6 9.9 

Я понимаю создание вектора числовых значений , Но я не понимаю, как и почему результат генерируется подмножеством с использованием логических значений.

+1

Хорошее объяснение утилизации [здесь] (http://stackoverflow.com/questions/13461829/r-how-to-list-every-other-element/13462110) –

ответ

2

Это явно проблема утилизации. Логический vector перерабатывается в конец вектора и возвращает значения везде, где находится TRUE. Чтобы проиллюстрировать это создать логический вектор с rep

i1 <- rep(c(TRUE, TRUE, FALSE, FALSE), length.out=9) 
i1 
#[1] TRUE TRUE FALSE FALSE TRUE TRUE FALSE FALSE TRUE 

и подмножество в vector

x[i1] 
#[1] 1.1 2.2 5.5 6.6 9.9 

В ВТОРИЧНАЯ также делает то же самое, т.е. повторяя вектор логических элементов до тех пор, пока не достигнет конца вектора.

Смежные вопросы