R: создание графика шкалы Лайкерта - PullRequest
1 голос
/ 26 мая 2020

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

Мои данные выглядят так, например:

enter image description here

Моя цель - создать гистограмму, которая отображает шкалу Лайкерта на x -lab и частота в y-lab.

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

    data <- factor(data, levels = c(1:7))
    table(data)

Однако я всегда получаю такой результат:

    data
    1 2 3 4 5 6 7 
    0 0 0 0 0 0 0 

Любые идеи, что пошло не так, или другие идеи, как Я смог реализовать свой план?

Большое спасибо! Лорена

Ответы [ 2 ]

1 голос
/ 26 мая 2020

Lorena!

Во-первых, нет необходимости применять factor () и table () в показанном вами наборе данных. Насколько я понимаю, все выглядит нормально.

R поставляется с некоторыми интересными параметрами построения графиков, hist () - один из них.

Гистограмма с hist ()

В следующем примере я буду использовать переменную «Valenz», как указано в вашем наборе данных.

Чтобы получить частоту без необходимости ее украшать, вы можете просто спросить:

hist(dataset, Valenz)

Первый аргумент (набор данных) сообщает , где эти значения; второй аргумент (Valenz) сообщает , какие значения из набора данных вы хотите использовать.

Если вы хотите знать только частоту, без необходимости сообщать ее в некоторых элегантный способ, который нужно сделать (:

Гистограмма с ggplot ()

Если вы хотите сделать его красивее, вы можете стилизовать свой график с помощью пакета ggplot2, одного из наиболее часто используемых пакетов в R.

Сначала установите, а затем загрузите пакет.

install.packages("ggplot2")
library(ggplot2)

Затем создайте гистограмму с x в качестве количества раз, когда получен какой-либо результат.

ggplot(dataset, aes(x = Valenz)) + 
geom_histogram(bins = 7, color = "Black", fill = "White") + 
labs(title = NULL, x = "Name of my variable", y = "Count of 'Variable'") +
theme_minimal()
  • ggplot () принимает значение вашего фрейма данных, затем aes () указывает, что вы хотите, чтобы Valenz находился на оси x.
  • geom_histogram () дает вам гистограмму с «bins = 7» (7 вариантов, поскольку это шкала Лайкерта) и полосы с «color = 'Black'» и «fill = 'White'».
  • labs () определяет метки, которые появляются под x ("x =" Имя моей переменной "), а затем через y (y =" Число 'переменной' ").
  • theme_minimal () делает сюжет круче.

Надеюсь, я помог тебе чем-то, Лорена. (:

1 голос
/ 26 мая 2020

Это очень простой способ ответить на ваш вопрос, используя только base-R

## your data
my_obs <- c(4,5,3,4,5,5,3,3,3,6)

## use a factor for class data
## you could consider making it ordered (ordinal data)
## which makes sense for Likert data
## type "?factor" in the console to see the documentation
my_factor <- factor(my_obs, levels = 1:7)

## calculate the frequencies
my_table <- table(my_factor)

## print my_table
my_table
 # my_factor
 # 1 2 3 4 5 6 7 
 # 0 0 4 2 3 1 0 

## plot
barplot(my_table)

, что дает следующий простой график:

enter image description here

Пожалуйста, дайте мне знать, это то, что вы хотите

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...