Объединение двух переменных для создания таблицы частот
Вопрос
У меня есть еще один вопрос новичка;
Допустим, у меня есть набор чисел
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