Объединение двух переменных для создания таблицы частот - PullRequest
2 голосов
/ 14 октября 2010

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

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

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.

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

Ответы [ 2 ]

2 голосов
/ 14 октября 2010

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

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)
1 голос
/ 14 октября 2010

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

http://cran.r -project.org / doc / manual / R-intro.html # Frequency-tables-from-факторы

...