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

R语言如何重塑count计数变量将数据转换为目标宽表格式

R长表转宽表实现方案

你要做的是典型的长格式数据透视宽格式操作,以下是可直接运行的实现代码:

方案1:tidyverse生态(推荐,代码简洁易读)

使用tidyr包的pivot_wider函数,直接指定填充规则即可,不需要额外处理缺失值:

# 加载包
library(tidyr)

# 读入原始数据
raw_df <- structure(list(ID = 1:4, concept = c("a", "b", "c", "d"), count = c(1L, 
2L, 4L, 6L)), class = "data.frame", row.names = c(NA, -4L))

# 执行转换
wide_df <- pivot_wider(
  raw_df,
  id_cols = ID,
  names_from = concept,
  values_from = count,
  values_fill = 0
)

运行后输出的wide_df和你给出的目标格式完全一致。

方案2:基础R实现,无需安装第三方包

如果不想依赖外部包,可以用内置的reshape函数完成转换,后续简单处理列名和缺失值即可:

# 读入原始数据
raw_df <- structure(list(ID = 1:4, concept = c("a", "b", "c", "d"), count = c(1L, 
2L, 4L, 6L)), class = "data.frame", row.names = c(NA, -4L))

# 维度转换
wide_df <- reshape(
  raw_df,
  idvar = "ID",
  timevar = "concept",
  v.names = "count",
  direction = "wide"
)
# 清理列名,移除自动生成的"count."前缀
colnames(wide_df) <- sub("count\\.", "", colnames(wide_df))
# 无匹配位置填充0
wide_df[is.na(wide_df)] <- 0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 00:01:07