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

R按字符列分组统计多因子列水平频数并生成嵌套表的实现方法

调整后的实现代码

library(dplyr)
library(tidyr)

X %>%
  # 宽表转长表,若不需要统计NA可添加参数 values_drop_na = TRUE
  pivot_longer(cols = -V1, names_to = "Name", values_to = "V9", values_transform = as.factor) %>%
  # 计数时保留所有因子水平组合,计数为0的分组也不丢弃
  count(V1, Name, V9, .drop = FALSE) %>%
  # 长表转回所需宽表格式,缺失计数填充为0
  pivot_wider(names_from = Name, values_from = n, values_fill = 0) %>%
  # 按分组V1和因子水平V9的默认顺序排序,匹配需求的输出格式
  arrange(V1, V9)

调整说明

你原有代码的逻辑已经接近需求,只需要补充2处细节:

  1. 转长表时保留V9的因子类型,确保原有的5个水平顺序(***/**/*/./ns)不会丢失
  2. 计数时添加.drop = FALSE参数,避免自动过滤计数为0的因子水平组合,保证每个V1分组下都有完整的5行V9水平结果

用你提供的前5行样例数据运行上述代码,输出结果完全符合你给出的表结构要求。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 02:39:02