Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 带有expss包的复杂表_R_Expss - Fatal编程技术网

R 带有expss包的复杂表

R 带有expss包的复杂表,r,expss,R,Expss,向所有expss专家问好(@Gregory Demin,如果你读过这条消息的话!),在发现这个软件包几天后,我取得了不错的成绩,但仍然在努力使用tab_*函数族创建复杂的交叉表,特别是创建具有显著性测试的组合 让我们从参考手册中给出的示例开始: library(expss) mtcars %>% tab_significance_options(keep = "none", sig_labels = NULL, subtable_marks = "greater", mode = "a

向所有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) 默认情况下,本例中的显著性测试输出为字母,为0.05级。这两个参数都可以更改。但在一个表的计算中是否可能包含两个显著性水平?本着以下精神:

sig_level = c(0.01, 0.05)
sig_labels = c(LETTERS, letters)
3) 最后(可能很简单?),是否有可能强制显示零?我有频率为0的系数级别,在基本R表中显示为0。使用expss时,标签保持不变,但行/列保持为空

再说一次,也许我正在寻找的东西并不存在于expss中,但至少我会确信它。 谢谢大家!

您的第二点(两级重要性)现在不可能。不过,您可以在特别准备的表格上添加第二级显著性和附加计算。 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()

谢谢你的快速回答,效果很好!我在这里和那里添加了一些东西(例如小计),但这变得相当冗长。关于如何避免重复这个序列太多次,有什么建议吗?(例如,包装在函数中?)该死,你太快了!正是我需要的,非常感谢!