Объединение двух переменных для создания таблицы частот

StackOverflow https://stackoverflow.com/questions/3929901

  •  30-09-2019
  •  | 
  •  

Вопрос

У меня есть еще один вопрос новичка;

Допустим, у меня есть набор чисел

graph_val <- c(4,2,3,4,1,1,9)

и мне нужно создать их таблицу частот по этой шкале

           1            2            3            4            5            9 
 "Very Poor"       "Poor"    "Average"       "Good"  "Very Good" "Don't Know" 

По сути, я хочу знать, как мне получить таблицу в этот формат:

 "Very Poor"       "Poor"    "Average"       "Good"  "Very Good" "Don't Know"
           2            1            1            1            0            1 

или по крайней мере:

           1            2            3            4            5            9
           2            1            1            1            0            1 

И я могу добавить этикетки позже, используя names.arg с Barplot 2.

Я был на этом большую часть дня, после этого это ясно, что для остальной части моей работы автоматизации это ясно. Я думал, что был на правильном пути с таблицей, но не мог туда добраться.

Это было полезно?

Решение

Сначала вам нужно учитывать свои данные. Подумайте о факторе точно так, как вы думаете о категорической переменной. Уровни рассказывает, чего ожидать, этикетки дают ему красивое имя.

graph_val <- factor(graph_val, levels=c(1,2,3,4,5,9), labels=strsplit('
Very Poor
Poor
Average
Good
Very Good
Don\'t Know
', '\n')[[1]][-1]) 
## Take note of the escape character in Don\'t Know

summary(graph_val)

Если вам нужен процент, вы можете сделать что -то вроде этого:

summary(graph_val)/length(graph_val)\

Или это:

round(summary(graph_val)/length(graph_val),2)

Другие советы

Следующее из «Введение в R» напрямую отвечает на ваш вопрос:

http://cran.r-project.org/doc/manuals/r-intro.html#frequence-tables-from-factors

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top