Как создать таблицу частот нескольких переменных в R


Чтобы вычислить таблицу частот для нескольких переменных во фрейме данных в R, вы можете использовать функцию apply() , которая использует следующий синтаксис:

применить (X, MARGIN FUN)

куда:

  • X: массив, матрица или фрейм данных.
  • MARGIN: применение функции к строкам (1) или столбцам (2)
  • FUN: функция, которую нужно применить

В следующих примерах показано, как использовать этот синтаксис на практике.

Пример 1: Таблица частот для всех переменных в R

Следующий код показывает, как рассчитать таблицу частот для каждой переменной во фрейме данных:

#create data frame
df <- data.frame(var1=c(1, 1, 2, 2, 2, 2, 3),
 var2=c('A', 'A', 'A', 'A', 'B', 'B', 'B'),
 var3=c(6, 7, 7, 7, 8, 8, 9))

#view first few rows of data frame
head(df)

 var1 var2 var3
1 1 A 6
2 1 A 7
3 2 A 7
4 2 A 7
5 2 B 8
6 2 B 8

#calculate frequency table for every variable in data frame
apply((df), 2, table)

$var1

1 2 3 
2 4 1 

$var2

A B 
4 3 

$var3

6 7 8 9 
1 3 2 1

Результатом являются три таблицы частот — по одной для каждой переменной во фрейме данных.

Вот как интерпретировать первую таблицу частот:

  • Значение 1 появляется 2 раза в столбце «var1».
  • Значение 2 появляется 4 раза в столбце «var2».
  • Значение 3 появляется 1 раз в столбце «var3»

Аналогично можно интерпретировать и другие таблицы частот.

Пример 2: Таблица частот для определенных переменных в R

В следующем коде показано, как рассчитать таблицу частот для определенных переменных во фрейме данных.

#create data frame
df <- data.frame(var1=c(1, 1, 2, 2, 2, 2, 3),
 var2=c('A', 'A', 'A', 'A', 'B', 'B', 'B'),
 var3=c(6, 7, 7, 7, 8, 8, 9))

#calculate frequency table for var1 and var3 columns
apply((df[c('var1', 'var3')]), 2, table)

$var1

1 2 3 
2 4 1

$var3

6 7 8 9 
1 3 2 1

Пример 3. Таблица частот для всех переменных R, кроме одной.

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

Следующий код показывает, как это сделать:

#create data frame
df <- data.frame(index=c(1, 2, 3, 4, 5, 6, 7),
 var2=c('A', 'A', 'A', 'A', 'B', 'B', 'B'),
 var3=c(6, 7, 7, 7, 8, 8, 9))

#calculate frequency table for all columns except index column
apply((df[-1]), 2, table)

$var2

A B 
4 3 

$var3

6 7 8 9 
1 3 2 1

Дополнительные ресурсы

Как создать двустороннюю таблицу в R
Как создать гистограмму относительной частоты в R