Автор: У. Н. Венэбльз
Издательство: Издательские решения
Жанр: Компьютеры: прочее
isbn: 9785449661531
isbn:
Такой индексный вектор может быть любым из четырех различных типов.
– Логический вектор. В этом случае индексный вектор рециклично приводится к той же самой длине как вектор, из которого должны быть выбраны элементы. Значение, соответствующее TRUE в индексном векторе, выбрано, и те, которые соответствуют FALSE, опущены. Например:
> y <-x [! is.na (x)]
создает (или воссоздает) объект y, который будет содержать не несуществующие (только существующие) значения x в том же самом порядке. Заметим, что, если у x есть отсутствующие значения, то y будет короче, чем x. Также:
> (x+1) [(! is.na (x)) & x> 0] -> z
создает объект z и помещает в него значение вектора x+1, для которого соответствующее значение в x и не пропущено и положительное.
– Вектор положительных целых величин. В этом случае значение в индексном векторе должно лежать в наборе {1, 2…, length (x)}. Соответствующие элементы вектора выбраны и связаны в этом порядке в результате. Индексный вектор может иметь любую длину, и результат имеет одинаковую длину с индексным вектором. Например, x [6] является шестой компонентой x и
> x [1:10]
выбирает первые 10 элементов x (предполагается, что length (x) не меньше, чем 10). Также:
> c («x», «y») [rep (c (1,2,2,1), times=4)]
(по общему признанию вещь маловероятная), производит символьный вектор длины 16, состоящий из «x», «y», «y», «x» повторенных четыре раза.
– Вектор отрицательных целых величин. Такой индексный вектор указывает значение, которое будет исключаться, а не включаться. Таким образом:
> y <– x [– (1:5)]
даст все у, кроме первых пяти значений.
– Вектор символьных строк. Эта возможность применяется там, где у объекта есть атрибут имен для идентификации его компонентов. В этом случае подвектор вектора имен может использоваться таким же образом в качестве положительных целых меток в пункте 2 далее выше:
> fruit <– c (5, 10, 1, 20)
> names (fruit) <– c («orange», «banana», «apple», «peach»)
> lunch <– fruit [c («apple», «orange»)]
Преимущество состоит в том, что алфавитно-цифровые имена часто легче запомнить, чем числовые индексы. Эта опция особенно полезна в соединении с фреймами данных, как увидим позже.
Также индексное выражение может появиться на приемном конце присвоения, когда операция присвоения выполняется только на этих элементах вектора. Выражение должно иметь вектор вида [index_vector], поскольку наличие произвольного выражения вместо векторного имени не имеет здесь большого смысла.
Присвоенный вектор должен соответствовать длине индексного вектора, и в случае логического индексируют вектор, СКАЧАТЬ