标签: likert

Likert中的错误:R中所有项目(列)必须具有相同的级别数

我的数据:

        Q5         Q6          Q7
1   Not Agree   Neutral     Not Agree
2   Not Agree   Neutral     Neutral
3   Not Agree   Agree       Agree
4   Not Agree   Agree       Neutral
5   Neutral     Not Agree   Neutral
6   Not Agree   Agree       Neutral
7   Not Agree   Neutral     Neutral
8   Neutral     Agree       Neutral
9   Agree       Neutral     Not Agree
10  Neutral     Agree       Neutral
Run Code Online (Sandbox Code Playgroud)
Q567[1:3] <- lapply(Q567[1:3], factor, levels= c("Agree", "Neutral", "Not Agree"), ordered = TRUE)

likert(Q567) %>%
  plot(type = "bar")
Run Code Online (Sandbox Code Playgroud)

我的数据是什么样的
我的数据是什么样的

我将它们转换为带有级别的因子,为什么我仍然收到错误

Error in likert(Q567) : All items (columns) must …
Run Code Online (Sandbox Code Playgroud)

r likert

6
推荐指数
2
解决办法
4725
查看次数

多面水平发散堆积条形图,包括使用 dplyr 和 ggplot 的负值

我希望这个例子会很清楚。我想在中间条跨越“0”的地方堆叠条,因为它代表一个中性值。这与李克特量表一起使用。为了重现性,我使用了钻石数据集。

以下示例与我的用例非常接近,并说明了我将“好”或“正”数据按正确顺序排列的困难(因此中性最接近 0)。

这是我的代码:

require(tidyverse)

diamonds_new <- diamonds %>%
  mutate(quality = fct_recode(cut, "Very poor" = "Fair", "Poor" = "Good", "Neutral" = "Very Good", "Good" = "Premium", "Excellent" = "Ideal")) %>% 
  select(color, clarity, quality) %>% 
  group_by(color, clarity, quality) %>% count()

diamonds_bad <- 
  diamonds_new %>% filter(quality %in% c("Very poor", "Poor", "Neutral")) %>% 
  mutate(n = ifelse(quality == "Neutral", -n/2, -n))

diamonds_good <- 
  diamonds_new %>% filter(quality %in% c("Neutral", "Good", "Excellent")) %>% 
  mutate(n = ifelse(quality == "Neutral", n/2, n)) # %>% 
#  arrange(color, clarity, desc(quality)) …
Run Code Online (Sandbox Code Playgroud)

r bar-chart ggplot2 dplyr likert

5
推荐指数
1
解决办法
1187
查看次数

自定义 Likert 图中条形图的宽度

我正在使用jbryer 的Likert 包,并希望使用堆积条形图来可视化数据。这些条形图的大小/宽度取决于图中有多少个条形图,即只有一个条形图时,条形图相当宽,而绘制的条形图越多,条形图就越细。

我想自定义设置条形的大小/宽度,以便无论图中绘制了多少个条形,它们都保持不变,即 l29_5 和 l29_2 的图的条形大小相同。

具有两个条形的李克特条形图

具有五个条形的李克特条形图

library(ggplot)
library(likert)    
data(pisaitems)

items29_5 <- pisaitems[,substr(names(pisaitems), 1,5) == 'ST25Q']
colnames(items29_5) <- c("Magazines", "Comic books", "Fiction", 
                    "Non-fiction books", "Newspapers")

items29_2 <-  items29_5 %>% 
  select("Magazines", "Comic books")


l29_5 <- likert(items29_5)
l29_2 <- likert(items29_2)

plot(l29_5)
plot(l29_2)
Run Code Online (Sandbox Code Playgroud)

plot r ggplot2 likert

5
推荐指数
1
解决办法
1895
查看次数

R Likert 图形编辑

我正在使用 R 包 Likert 根据调查问卷制作图表。这些图表基本上只是偏好谱,看起来非常像这个表示(没有原始数据,不能透露):

data("pisaitems")
title <- "How often do you read these materials because you want to?"
items29 <- pisaitems[,substr(names(pisaitems), 1,5) == 'ST25Q']
head(items29); ncol(items29)
names(items29) = c("Magazines", "Comic books", "Fiction", "Non-fiction books", "Newspapers")
l29 <- likert(items29)
str(l29)
l29s <- likert(summary = l29$results)
str(l29s)
scale_height = knitr::opts_chunk$get('fig.height')*0.5
scale_width = knitr::opts_chunk$get('fig.width')*1.25
knitr::opts_chunk$set(fig.height = scale_height, fig.width = scale_width)
theme_update(legend.text = element_text(size = rel(0.7)))
plot(l29s) + ggtitle(title)
Run Code Online (Sandbox Code Playgroud)

所以这是我的问题:

  1. 我正在为一家德国公司进行此分析,我似乎无法摆脱图表中的“百分比”标签?
  2. 如何将轴上的刻度更改为 10% 增量?
  3. 如何将项目名称与标题左侧和中心对齐?如何将图例与左下角对齐?

我已经设法让大部分图表设置符合我的喜好,但最后 3 个设置一直让我困惑。

仅供参考:示例是从该站点生成的: https: //rpubs.com/m_dev/likert_summary

r likert

3
推荐指数
1
解决办法
3293
查看次数

在 R 中绘制 Likert 变量的堆积条形图

假设我有一个如下所示的数据框:

  P   Q1  Q2 ...
  1   1   4    1
  2   2   3    4
  3   1   1    4
Run Code Online (Sandbox Code Playgroud)

其中的列告诉我哪个人相应地回答了问题 q1、q2、... 中的哪一个。这些问题需要按照 4 分李克特量表进行回答(例如,“批准”意味着 1,“稍微批准”意味着 2,等等)。我如何绘制两个问题结果的堆积条形图(以%为单位)?

它应该看起来有点像这样

我在网上找到的都是非常复杂的代码,我无法处理或无法理解......不是只有一个简单的函数可以完成我想要的事情吗?

谢谢你!

r bar-chart ggplot2 stacked-chart likert

2
推荐指数
1
解决办法
3718
查看次数

与一些非受访者一起绘制李克特式问题

我正在尝试绘制 Likert 类型的数据,并使用改编自该网站的代码:https://scisley.github.io/articles/ggplot-likert-plot/

重现该示例的代码:

# load packages
library(dplyr)
library(ggplot2)
library(knitr)
library(tidyr)
library(scales)

# Simulation N responses
N <- 50
answers <- c("Strongly Disagree","Somewhat Disagree","Neither Agree nor Disagree",
              "Somewhat Agree", "Strongly Agree")
set.seed(12342)
d <- tibble(
  id = paste0("Respondent", 1:N),
  Q1 = sample(answers, N, replace=TRUE),
  Q2 = sample(answers, N, replace=TRUE),
  Q3 = sample(answers, N, replace=TRUE),
  Q4 = sample(answers, N, replace=TRUE),
  Q5 = sample(answers, N, replace=TRUE)
)

# reduce data
d.reduced <- d %>%
  select(-id) %>%
  gather("Q", "ans") %>%
  group_by(Q, ans) …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 likert

2
推荐指数
1
解决办法
74
查看次数

更改李克特量表中的绘图顺序

我正在尝试更改用 Likert 包绘制我的 Likert 项目的顺序,但到目前为止我还不是很成功。让我们考虑以下最小代码来重现我的错误。我希望看到以特定的自定义(或至少问题 1 到问题 4,从上到下)顺序进行绘图。我尝试了几件事(基于这里的一些问题和答案),但都失败了。

首先是数据:

question1<- c(1,5,3,4,1,1,1,3,4,5)
question2<- rev(c(1,5,3,4,1,1,1,3,4,5))
question3<- c(1,1,1,2,2,2,3,3,4,5)
question4<- c(5,5,5,4,4,4,3,3,2,1)
testData<-data.frame(question1,question2,question3,question4)
testData <- lapply(testData, factor, levels= c(1:5), ordered = TRUE)
testData <- as.data.frame(testData)
Run Code Online (Sandbox Code Playgroud)

然后绘制尝试#1:

p <- (likert(testData))
plot(p)
Run Code Online (Sandbox Code Playgroud)

给了我以下内容:

绘图尝试1

绘制第二次尝试(足够接近,但顺序颠倒了,这并没有给我任何随机排序的解决方案):

p <- (likert(testData))
plot(p, ordered=FALSE)
Run Code Online (Sandbox Code Playgroud)

给了我这个:

绘图尝试2

绘图尝试#3:

p <- (likert(testData))
p$Item <- factor(p$Item, levels = rev(c("question1", "question2", "question3", "question4")))
plot(p)
Run Code Online (Sandbox Code Playgroud)

也不起作用。有人知道如何解决这个问题吗?

提前致谢。

plot r ggplot2 likert

1
推荐指数
1
解决办法
1650
查看次数

标签 统计

likert ×7

r ×7

ggplot2 ×5

bar-chart ×2

plot ×2

dplyr ×1

stacked-chart ×1