【问题标题】:Display missing values with Crosstable()使用 Crosstable() 显示缺失值
【发布时间】:2021-05-10 08:20:06
【问题描述】:

我正在尝试使用CrossTable() 显示频率表。

我希望它显示与以下内容相同的结果:

   table(mydata$union, exclude=NULL)

我找不到任何关于此的文档,但我只有:

  CrossTable(mydata$union,digits=4)

【问题讨论】:

  • 您可以运行?CrossTable 来获取文档。
  • 我的回答有帮助还是您找到了其他方法?

标签: r missing-data crosstab


【解决方案1】:

似乎gmodels::CrossTable函数不处理R类型NAs。它似乎深受 SPSS 和 SAS 的启发,它们对NAs 有不同的约定。保留或删除任何未使用的因子水平的 missing.include 参数似乎也不是很有帮助。

如果您来自 SPSS 背景,我建议您执行与您在 SPSS 中所做的类似的操作:将 NAs 替换为常规值 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-02-06 创建

【讨论】:

    猜你喜欢
    • 2016-09-11
    • 2020-08-12
    • 2020-09-08
    • 2021-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多