如何按最后一列的降序对Likert热图进行排序

时间:2017-11-15 12:34:31

标签: r

使用Likert包绘制一些比特尺度。绘制条形图时,它们默认排序。我需要以相同的方式对热图进行排序,但到目前为止还没有成功。 如您所见,热图按照问题的字母顺序排列。

使用演示数据&包中的代码:

# Reverse the levels
items24.reverse <- reverse.levels(items24)
l24.reverse <- likert(items24.reverse)
plot(l24.reverse)

enter image description here

我想要像这样订购热图:

enter image description here

1 个答案:

答案 0 :(得分:1)

Likert包不允许进行此类操作。 热图总是按字母顺序排序的文本排序。因此,我建议通过强制文本先前按您认为最有可能像条形图排序的列进行排序来建议解决方法。有点讨厌,但有效:

   library(magrittr)
   library(dplyr)

# Get the results data frame out of the list
# and sort by last column ("Strongly agree")
# padding with zeros to avoid alphabetical ordering

 l24.results <- l24.reverse$results %>%
      dplyr::arrange(desc(`Strongly agree`)) %>% 
      dplyr::mutate(Item = paste(str_pad(row_number(),2, pad = "0"), Item, sep = ' '))


# create a likert object again from the summary feature

  mylikert <- likert(summary = l24.results)

# plot again

plot(mylikert, type = "heat")

enter image description here