【问题标题】:Nice but plain text table for likert scale data in RR中李克特量表数据的漂亮但纯文本表
【发布时间】:2018-05-04 09:47:32
【问题描述】:

我有李克特量表数据。我想以一种简单的(对于非 R 用户)阅读方式显示它们。重要的是它必须是控制台上的纯文本。没有图形或类似likert 包提供的东西。它不一定是table(),但它应该看起来像一张桌子——不管它背后有什么神奇的 R 构造。

此表仅用于开始探索数据集时的第一个视图。

这是示例数据

> set.seed(0)
> lik <- sample(c(0:3, NA), 150, replace=TRUE)
> lik <- factor(lik, levels=0:3, labels=c('no', 'maybe no', 'maybe yes', 'yes'))
> tn <- table(lik, useNA="always")
> tn
lik
       no  maybe no maybe yes       yes      <NA> 
       22        33        34        37        24 

我“漂亮”的桌子可能看起来像这样

  no maybe no maybe yes  yes <NA>
n 24       34        37   29   26
% 36       51      55.5 43.5   39

这里请注意3729不显示数字!

如果我要使用rbind(),这里有数字。查看我尝试过的内容到目前为止

> tp <- sapply(tn, function(x) { sum(tn) / 100 * x })
> rbind(tn, tp)
   no maybe no maybe yes  yes <NA>
tn 22     33.0        34 37.0   24
tp 33     49.5        51 55.5   36

一个问题是,如何设置行名(例如tn -n)以及如何防止在第一行中用数字打印数字。

我完全愿意接受关于如何以纯文本很好地和简单地显示 likert 数据(意思是:非 R 用户,例如 SPSS 用户可读)的建议。。 p>

【问题讨论】:

    标签: r likert


    【解决方案1】:

    如果我正确理解您的问题,我相信您可以使用knitr 包中的kable 函数来解决您的问题:

    tab <- rbind(tn, tp)
    rownames(tab) <- c("n", "%")
    knitr::kable(tab, digits=0)
    

    这会产生以下输出

    |   | no| maybe no| maybe yes| yes| NA|
    |:--|--:|--------:|---------:|---:|--:|
    |n  | 22|       33|        34|  37| 24|
    |%  | 33|       50|        51|  56| 36|
    

    编辑:抱歉,我现在看到您想将小数保留在第二行。不幸的是 kable 按列设置数字,所以这对你没有帮助。你可以这样做:

    knitr::kable(t(tab))
    

    导致

    |          |  n|    %|
    |:---------|--:|----:|
    |no        | 22| 33.0|
    |maybe no  | 33| 49.5|
    |maybe yes | 34| 51.0|
    |yes       | 37| 55.5|
    |NA        | 24| 36.0|
    

    EDIT2:您的百分比加起来似乎不是 100%;我不知道为什么会这样,但以下给出的百分比总计为 100%:

    tab <- cbind(tn, tn / sum(tn) * 100)
    colnames(tab) <- c("n", "%")
    knitr::kable(tab, digits = c(0, 1))
    
    |          |  n|    %|
    |:---------|--:|----:|
    |no        | 22| 14.7|
    |maybe no  | 33| 22.0|
    |maybe yes | 34| 22.7|
    |yes       | 37| 24.7|
    |NA        | 24| 16.0|
    

    【讨论】:

    • 我可以用- 替换0 值吗?
    • 我使用上面的示例,使用值 33,但同样适用于 0:tab[tab == 33] &lt;- "-"。请注意,这会将表格的类型更改为字符,但这不应该成为打印问题。
    猜你喜欢
    • 1970-01-01
    • 2021-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-18
    • 1970-01-01
    • 2022-11-03
    • 1970-01-01
    相关资源
    最近更新 更多