Автор: У. Н. Венэбльз
Издательство: Издательские решения
Жанр: Компьютеры: прочее
isbn: 9785449661531
isbn:
Levels: act nsw nt qld sa tas vic wa
Чтобы выяснить уровни фактора можно использовать функцию level ():
> levels (statef)
[1] «act» «nsw» «nt» «qld» «sa» «tas» «vic» «wa»
4.2. Функция tapply () и массивы с переменной длиной строк
Чтобы продолжить предыдущий пример, предположим, что у нас есть доходы от каждого налогоплательщика в другом векторе (в подходящих крупных денежных единицах):
> incomes <– c (60, 49, 40, 61, 64, 60, 59, 54, 62, 69, 70, 42, 56,
61, 61, 61, 58, 51, 48, 65, 49, 49, 41, 48, 52, 46,
59, 46, 58, 43)
Чтобы вычислить средний доход в выборке по каждому штату используем теперь специальную функцию tapply ():
> incmeans <– tapply (incomes, statef, mean)
дающей вектор средних с компонентами, маркированными уровнями:
Функция tapply () используется для применения здесь функции mean () к каждой группе компонентов первого параметра, здесь доходов, определенные уровнями второго компонента, здесь statef, как будто они были отдельными векторными структурами. Результат – структура той же самой длины как атрибут уровней фактора, содержащего результаты.
Обратите внимание на то, что tapply () также работает в этом случае, когда его второй параметр не фактор, например, «tapply (incomes, state)», и это верно для довольно многих других функций, так как при необходимости параметры преобразованы в факторы (используется as. factor ()).
Читатель должен консультироваться с документом справки для большего количества деталей.
Предположи далее, что необходимо вычислить стандартные ошибки средних доходов штата. Для этого следует записать функцию R для вычисления стандартной ошибки для любого данного вектора. Так как существует встроенная функция var () для вычисления дисперсии выборки, то такая функция записывается в виде одной строки, задаваемая присвоением:
> stderr <– function (x) sqrt (var (x) /length (x))
Написание функций рассмотрим позже в Главе 10 [Написание собственных функций], и в этом случае было ненужным, поскольку R также имеет встроенную функцию sd (). После этого присвоения стандартные ошибки вычислены:
> incster <– tapply (incomes, statef, stdError)
и затем вычисленные величины:
> incster
В качестве примера можно вычислить обычные 95%-ые доверительные границы для средних доходов штата. Для этого можно использовать tapply () еще раз с функцией length (), чтобы найти размеры выборки, и функцию qt (), чтобы найти процентные точки соответствующих t-распределений. Также можно рассмотреть средства R для t-тестов.
Также можно применить функцию tapply () к более сложной индексация вектора на несколько категорий. Например, можно разделить налоговые счета как по штатам, так и по полу. Однако в этом простом примере (только один фактор) то, что происходит, можно представить следующим образом. Значение в векторе собрано в группы, соответствующие различным позициям в факторе. Затем функция применяется к каждой из этих групп отдельно. Результат – это вектор значений функции, маркированных согласно levels фактора.
СКАЧАТЬ