首页 > 解决方案 > R:创建李克特比例条形图

问题描述

我是 R 新手,感觉有点失落……我正在研究一个包含 7 个点likert-scale 答案的数据集。

例如,我的数据如下所示:

在此处输入图像描述

我的目标是创建一个条形图,在 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 

任何想法出了什么问题或其他想法如何实现我的计划?

非常感谢!洛雷娜

标签: rbar-chartlikert

解决方案


洛雷娜!

首先,在您显示的数据集中,无需应用 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 = "Count of 'Variable'") 下方的标签。
  • theme_minimal() 使情节看起来更酷。

我希望我能以某种方式帮助你,Lorena。(:


推荐阅读