Введение в R версия 3.5.2 (2018-12-20). Заметки по R: среда программирования для анализа данных и графики - страница 16

Шрифт
Интервал


.

3.4. Класс объекта

У всех объектов в R есть класс (class), определяемы при помощи функции class. Для простых векторов это – только тип, например, «numeric», «logical», «character» или «list», но «matrix», «array», «factor» и "data.frame» " являются другими возможными значениями.

Специальный атрибут, известный как class (класс) объекта, используется для учета объектно-ориентированного стиля программирования в R. Например, если у объекта будет класс "data.frame», то он будет напечатан определенным способом, функция plot () выведет на экран его графически определенным способом, и другие, так называемые универсальные функции, такие как summary (), будут реагировать на него как на параметр, способом применимым к его классу.

Чтобы удалить временно эффект класса, используйте функцию unclass (). Например, если у winter есть класс "data.frame» то:

> winter

напечатает его в форме фрейма данных, которая скорее походит на матрицу, тогда как:

> unclass (winter)

напечатает его как обычный список. Только в довольно специальных ситуациях следует использовать это средство, но каждый раз для достижения согласования идеи класса и универсальных функций.

Универсальные функции и классы будут обсуждены далее в Разделе 10.9 [Ориентация объекта], но только кратко.

4. Упорядоченные и неупорядоченные факторы

Фактор – векторный объект, используемый для спецификации дискретной классификации (группировки) компонентов других векторов одинаковой длины. R поддерживает как упорядоченные, так и не упорядоченные факторы. Хотя «реальное» применение факторов имеет место в формулах модели (см. Раздел 11.1.1 [Противоположности]), здесь рассмотрим на специальный пример.

4.1. Специальный пример

Предположим, например, имеется выборка 30 налоговых деклараций из всех штатов и территорий Австралии, и их индивидуальное происхождение указывается символьным вектором аббревиатуры штата как:

> state <– c («tas», «sa», «qld», «nsw», «nsw», «nt», «wa», «wa»,
«qld», «vic», «nsw», «vic», «qld», «qld», «sa», «tas»,
«sa», «nt», «wa», «vic», «qld», «nsw», «nsw», «wa»,
«sa», «act», «nsw», «vic», «vic», «act»)

Заметим, что в случае символьного вектора, «sorted» означает сортировку в алфавитном порядке.

Создаются факторы аналогичным образом с помощью функции factor ():

> statef <– factor (state)