Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
RCoreTeam2014.docx
Скачиваний:
46
Добавлен:
08.10.2015
Размер:
539.13 Кб
Скачать
    1. Формирование разделенных матриц cbind () и rbind ()

Как мы уже видели неформально, матрицы могут быть созданы из других векторов и матриц функциями cbind() и rbind(). Например,cbind()формирует матрицы путем связывания матриц горизонтально, или по столбцам, аrbind()вертикально, или по строкам.

В присвоении:

> X <-cbind (arg_1, arg_2, arg_3...)

параметрами cbind()должны быть или векторы любой длины, или матрицы с одинаковым размером столбца, который является одинаковым числом строк. Результатом является матрица с присоединеннымиarg_1, arg_2..., которые формируют столбцы.

Если некоторыми из параметров cbind()являются векторами, то они могут быть короче, чем размер столбца любых существующих матриц, так как они циклически расширяются, чтобы соответствовать размеру столбца матрицы (или длине самого длинного вектора, если нет матриц).

Функция rbind()делает соответствующую работу для строк. В этом случае любой векторный параметр, возможно циклически расширенный, конечно взят в качестве векторов строки.

Предположим, что X1иX2 имеет одинаковое число строк. Объединить их по столбцам в матрицеX, вместе с начальным столбцом, равным 1, можно использованием:

> X <-cbind (1, X1, X2)

У результата rbind() илиcbind()всегда статус матрицы. Следовательно,cbind(x)иrbind(x)являются, возможно, самыми простым способом обработать векторxкак столбец или строку матрицы соответственно.

    1. Функция связывания массивовc()

Нужно отметить, что, тогда как cbind()иrbind()являются функциями связывания, которые принимают во внимание атрибуты размерностиdim, базовая функцияc()этого не делает, а скорее очищает числовые объекты от всех атрибутовdimиdimnames. Иногда это полезно само по себе. Официальный способ преобразовать массив обратно к простому векторному объекту состоит в использованииas.vector():

> vec <-as.vector (X)

Однако подобный результат может быть достигнут при использовании c()только с одним параметром, просто в качестве побочного эффекта: > vec <-c (X)

Между ними есть незначительные различия, но, в конечном счете, выбор между ними - в значительной степени вопрос стиля (прежний предпочтительней).

    1. Таблицы частот от факторов

Вспомним, что фактор определяет разделение на группы. Подобно этому пара факторов определяет два пути классификация кросса и так далее. Функция table()вычисляет таблицы частот от факторов равной длины. Если есть параметрыk-фактора, результат - kпутем массива частот.

Предположим, например, что statef- фактор, дающий код состояния для каждой записи в векторе данных. Присвоение: > statefr <- table(statef)

дает в statefr таблицу частот каждого состояния в выборке. Частоты упорядочены и маркированы атрибутом уровней фактора. Этот простой случай эквивалентен, но более удобен чем:

> statefr <- tapply(statef, statef, length)

Далее предположим, что incomef- фактор, дающий соответственно определенный “поступивший класс” для каждой записи в векторе данных, например, с функциейcut():

> factor(cut(incomes, breaks = 35+10*(0:7))) -> incomef

Затем вычислим двухвходовую таблицу частот:

> table(incomef,statef) statef

incomef act nsw nt qld sa tas vic wa

(35,45] 1 1 0 1 0 0 1 0

(45,55] 1 1 1 1 2 0 1 3

(55,65] 0 3 1 3 2 2 2 1

(65,75] 0 1 0 0 0 0 1 0

Расширение более высокого пути таблицы частот непосредственно.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]