You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言使用dcast统计时如何为因子变量的0观测水平显示0值

解决方法

  1. 首先确认已为数据框的AEOUT列设置了完整的预设因子水平,你的初始数据没有应用这层设置,需要先运行:
df$AEOUT <- factor(df$AEOUT, levels = c("RECOVERED/RESOLVED","RECOVERED/RESOLVED WITH SEQUELAE", "RECOVERING/RESOLVING", "NOT RECOVERED/NOT RESOLVED", "FATAL", "UNKNOWN"))
  1. 使用dcast时添加drop = FALSE参数,同时指定计数的聚合函数,空水平会自动填充为0,同时保留原有因子顺序:
library(reshape2)
library(dplyr)

test <- df %>% 
  dcast(AEOUT ~ AEREL1S, 
        fun.aggregate = length, 
        drop = FALSE,
        value.var = "AEREL1S")

如果你习惯使用tidyverse系列的函数,也可以用count+pivot_wider实现相同效果:

library(dplyr)
library(tidyr)

test <- df %>%
  count(AEOUT, AEREL1S, .drop = FALSE) %>%
  pivot_wider(
    names_from = AEREL1S,
    values_from = n,
    values_fill = 0
  )

内容的提问来源于stack exchange,提问作者Stataq

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.17 13:06:04