如何解决使用 Crosstable() 显示缺失值
我希望它显示与以下相同的结果:
table(mydata$union,exclude=NULL)
我找不到任何关于此的文档,但我只有:
Crosstable(mydata$union,digits=4)
解决方法
gmodels::CrossTable
函数似乎没有处理 R 类型的 NA
。它似乎深受 SPSS 和 SAS 的启发,它们对 NA
有不同的约定。保留或删除任何未使用的因子水平的 missing.include
参数似乎也没有太大帮助。
如果您有 SPSS 背景,我建议您做一些类似于您在 SPSS 中所做的事情:将 NA
替换为常规值 9999。您可以在整个数据框上运行 tidyr::replace_na
或在特定列上。这是一个可重现的小示例:
library(gmodels)
library(tidyr)
data <- mtcars
data$am[c(3,7,10)] <- NA # replace some values with NAs in am column for example purposes
data$am <- tidyr::replace_na(data$am,9999) # replace NAs with 9999 like would be the case in SPSS
gmodels::CrossTable(data$am,digits = 4,format = "SPSS")
#>
#> Cell Contents
#> |-------------------------|
#> | Count |
#> | Row Percent |
#> |-------------------------|
#>
#> Total Observations in Table: 32
#>
#> | 0 | 1 | 9999 |
#> |-----------|-----------|-----------|
#> | 17 | 12 | 3 |
#> | 53.1250% | 37.5000% | 9.3750% |
#> |-----------|-----------|-----------|
#>
#>
由 reprex package (v0.3.0) 于 2021 年 2 月 6 日创建
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。