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

如何在R中转换data.frame为宽格式以制作热图?

R数据框重塑为热图格式的解决方案

原始数据结构

V26V22n
140SRPS301
2A1.1-4282
3A1.1-4291
4A1.1-4308
5A1.1-4315
6AAO3281
7AAO3311
8ABCG412811
9ABCG412910
10ACA11286

目标格式

28293031
140SRPS0010
2A1.1-42185
3AAO31001
4ABCG41111000
5ACA116000

解决方案

方法1:使用tidyverse的pivot_wider(推荐,语法直观)

先加载tidyverse包,通过pivot_wider将长格式转宽格式,同时填充缺失值为0:

# 加载包
library(tidyverse)

# 假设你的数据框名为df
df_wide <- df %>%
  pivot_wider(
    id_cols = V26,          # 作为行标识的列
    names_from = V22,       # 转为列名的列
    values_from = n,        # 填充到单元格的值
    values_fill = 0         # 缺失值填充为0
  )

方法2:使用基础R的reshape函数(无需额外安装包)

如果不想加载第三方包,可用基础R原生函数实现:

# 假设你的数据框名为df
df_wide <- reshape(
  df,
  idvar = "V26",
  timevar = "V22",
  direction = "wide",
  v.names = "n"
)
# 移除列名中的"n."前缀
colnames(df_wide) <- gsub("n\\.", "", colnames(df_wide))
# 将NA替换为0
df_wide[is.na(df_wide)] <- 0

两种方法均可高效处理数百行数据,生成热图所需的宽格式结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 03:05:06