r - 使用 Crosstable() 显示缺失值
问题描述
我正在尝试使用显示频率表CrossTable()
。
我希望它显示与以下相同的结果:
table(mydata$union, exclude=NULL)
我找不到任何关于此的文档,但我所拥有的只是:
CrossTable(mydata$union,digits=4)
解决方案
似乎该gmodels::CrossTable
函数不处理 R type NA
。它似乎深受 SPSS 和 SAS 的启发,它们对NA
s 有不同的约定。保留或删除任何未使用的因子水平的missing.include
论点似乎也不是很有帮助。
如果您来自 SPSS 背景,我建议您做一些类似于您在 SPSS 中所做的事情:将NA
s 替换为常规值 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 包(v0.3.0)于 2021-02-06 创建
推荐阅读
- excel - Excel Sub 在返回控制时非常慢
- module - 我可以从 F# 模块中只导入一个声明吗?
- python - read_sql 和 Python 处理“无”值
- gitlab - 如何手动更改 gitlab 中的 favicon(徽标)
- python - 如何使用 dtype=float16 创建巨大的稀疏矩阵?
- powershell - 是否可以从 try..catch 语句中提取多个 SNMP 值?
- java - 只有 3 个特定单词的字符串匹配
- html - 如何使用 Bootstrap 4 创建图标菜单?
- powershell - 如何开始工作以将多个条目添加到哈希表中
- jquery - 无法在 Vue js 中为列表分配类 - 错误或限制?