【问题标题】:Likert Plot legend names for response用于响应的李克特图例名称
【发布时间】:2019-06-30 12:39:21
【问题描述】:

我开发了一个脚本来绘制李克特量表。脚本工作正常,情节正确。我想更改响应标签, “非常不同意”、“不同意”、“稍微不同意”、“稍微同意”、“同意”、“非常同意”按顺序排列。 我尝试了不同的解决方案,但似乎都没有工作

Q1 <- read_excel("C:\\Users\\users\\Desktop\\Survey Responses\\Business Survey\\BusinessLikert.xlsx")

df <- data.frame(respondent = c(Q1$Respondent), Score = c(Q1$Q1))

df1 <- likert(items=df[,2, drop = FALSE], nlevels = 6)

summary(df1)

likert.bar.plot(df1)

likert.density.plot(df1)

【问题讨论】:

    标签: r plot likert


    【解决方案1】:

    正如likert 函数(?likert::likert) 的文档中所述,items 中的data.frame 的列应该是因素。然后,级别名称指定派生的李克特图中使用的响应标签。由于您的数据不可重现,请考虑以下人工示例:

    library(likert)
    
    set.seed(1)
    df <- data.frame(Score = factor(sample(1:6, size = 100, replace = TRUE), 
                     labels = c("Strongly Disagree", "Disagree", "Slightly Disagree", "Slightly Agree", "Agree", "Strongly Agree")))
    (df_likert <- likert(items = df))
    #>    Item Strongly Disagree Disagree Slightly Disagree Slightly Agree Agree
    #> 1 Score                19       18                12             15    15
    #>   Strongly Agree
    #> 1             21
    
    likert.bar.plot(df_likert)
    


    编辑:对于表示 data.frame 中各个响应组的多个(例如数字)列,首先将列重新编码为因子,然后将 likert 函数应用于重新编码的 data.frame:

    ## initial data.frame of integers
    df <- data.frame(
      sapply(c("Q1", "Q2", "Q3"), function(x) sample(1:6, size = 100, replace = TRUE))
    )
    
    ## recode each column as a factor
    df_factor <- as.data.frame(
      lapply(df, function(x) factor(x, 
          labels = c("Strongly Disagree", "Disagree", "Slightly Disagree", 
                     "Slightly Agree", "Agree", "Strongly Agree"))
      )
    )
    
    (df_likert <- likert(items = df_factor))
    #>   Item Strongly Disagree Disagree Slightly Disagree Slightly Agree Agree
    #> 1   Q1                19       18                12             15    15
    #> 2   Q2                19       16                19             18    15
    #> 3   Q3                18       15                 8             21    20
    #>   Strongly Agree
    #> 1             21
    #> 2             13
    #> 3             18
    
    likert.bar.plot(df_likert)
    

    【讨论】:

    • ...您可以使用类似的方法将现有的 1:6 转换为相应的因子:df$Score_factor = factor(df$Score, labels = c("Strongly Disagree", "Disagree", "Slightly Disagree", "Slightly Agree", "Agree", "Strongly Agree"))
    • 感谢乔里斯的帮助。我不知道应该将我的数据输入放在脚本中 Q1
    • 正如@JonSpring 评论的那样,您可以将data.frame 中现有的Score 列转换为带有factor 的因子并指定其级别名称。您可以在此处阅读有关 R 中因子的更多信息:stat.berkeley.edu/~s133/factors.html
    • 忘了提到数据输入是 11 列 Q1、Q2、Q3、Q4 等,其中包含调查的响应分数。每列总共有 47 个响应,例如,Q1 有 47 个单元格,响应在 1 到 6 之间
    • 按原样,您的数据不可重现,请考虑在问题中包含(部分)您的数据dput 或包含具有类似结构的人工创建的数据集,另请参阅stackoverflow.com/questions/5963269/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-16
    • 2015-09-07
    • 1970-01-01
    相关资源
    最近更新 更多