1

您好所有 expss 专家(@Gregory Demin,如果您阅读了此消息!),在发现这个包几天后,我取得了不错的成绩,但仍然很难使用 tab_* 系列函数创建复杂的交叉表,特别是创建组合用显着性检验。

让我们从参考手册中给出的示例开始:

library(expss)
mtcars %>%
  tab_significance_options(keep = "none", sig_labels = NULL, subtable_marks = "greater", mode = "append") %>%
  tab_cols(total(), vs, am) %>%
  tab_cells(cyl, gear) %>%
  tab_stat_cpct() %>%
  tab_last_add_sig_labels() %>%
  tab_last_sig_cpct() %>%
  tab_last_hstack("inside_columns") %>%
  tab_pivot(stat_position = "inside_rows")

从这一点来看,我不知道以下操作是否可行,如果可以,哪些脚本可以解决问题:

1) 使用“fre”功能并排显示计数和百分比非常简单,但仅限于此目的。我们如何将案例添加到交叉表中?(以案例/百分比/测试的形式,在 3 个不同的列中)

2) 默认情况下,此示例中的显着性测试输出为 LETTERS,级别为 0.05。这两个参数都可以更改。但是是否可以在单个表计算中包含两个显着性级别?本着以下精神的东西:

sig_level = c(0.01, 0.05)
sig_labels = c(LETTERS, letters)

3)最后(可能是一个简单的?),是否有可能强制显示零?我有频率 = 0 的因子水平,在基本 R 表中显示为 0。使用 expss 标签保持不变,但行/列保持为空。

再说一次,也许我正在寻找的东西并不存在于 expss 中,但至少我可以确定。谢谢!

4

1 回答 1

1

你的第二点(两级意义)现在是不可能的。但是,您可以通过在专门准备的表格上进行额外计算来添加二级显着性。1和3很简单:

library(expss)
data(mtcars)
mtcars %>%
    tab_significance_options(keep = "none", sig_labels = NULL, subtable_marks = "greater", mode = "append") %>%
    tab_cols(total(), vs, am) %>%
    tab_cells(cyl, gear) %>%
    # block for cases 
    tab_stat_cases(label = "cases") %>% 
    tab_last_add_sig_labels() %>%
    # block for percent statistic
    tab_stat_cpct(label = "%") %>% # percent
    tab_last_add_sig_labels() %>%
    tab_last_sig_cpct() %>%
    tab_pivot(stat_position = "inside_columns") %>% 
    # converts NA to zero
    recode(as.criterion(is.numeric) & is.na ~ 0, TRUE ~ copy)

在此处输入图像描述

更新:您可以将链的一部分指定为自定义函数以避免重复:

library(expss)
data(mtcars)

### tab cols
my_banner = mtcars %>%
    tab_cols(total(), vs, am)

### table and formattig
my_custom_table = . %>% 
    tab_significance_options(keep = "none", sig_labels = NULL, subtable_marks = "greater", mode = "append") %>%
    # block for cases 
    tab_stat_cases(label = "cases") %>% 
    tab_last_add_sig_labels() %>%
    # block for percent statistic
    tab_stat_cpct(label = "%") %>% # percent
    tab_last_add_sig_labels() %>%
    tab_last_sig_cpct() %>%
    tab_pivot(stat_position = "inside_columns") %>% 
    # converts NA to zero
    recode(as.criterion(is.numeric) & is.na ~ 0, TRUE ~ copy)

 ### here we build table
 my_banner %>%
    tab_cells(cyl, gear) %>%
    my_custom_table()
于 2020-04-02T00:16:30.383 回答