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

R语言是否有类似Pandas Profile的轻量数据探查工具?

R语言数据探查工具:优化DataExplorer或替代方案

一、调整DataExplorer的create_report解决宽数据集缺失值问题

DataExplorer默认的缺失值热力图在宽数据集(变量多)时确实拥挤难读,你可以通过自定义模块替换默认的缺失值可视化,改用更适合的条形图展示每个变量的缺失值数量和占比:

library(DataExplorer)
library(ggplot2)

# 自定义缺失值统计与可视化函数
custom_missing_report <- function(data) {
  # 计算缺失值统计数据
  missing_stats <- data.frame(
    变量名 = colnames(data),
    缺失值数量 = colSums(is.na(data)),
    缺失值占比 = round(colSums(is.na(data))/nrow(data)*100, 2)
  )
  # 按缺失值占比降序排序
  missing_stats <- missing_stats[order(missing_stats$缺失值占比, decreasing = TRUE), ]
  
  # 生成横向条形图
  p <- ggplot(missing_stats, aes(x = reorder(变量名, 缺失值占比), y = 缺失值占比)) +
    geom_bar(stat = "identity", fill = "#4285F4") +
    # 添加缺失值数量和占比标签
    geom_text(aes(label = paste0(缺失值数量, " (", 缺失值占比, "%)")), 
              hjust = -0.1, size = 3.5) +
    coord_flip() +
    labs(title = "缺失值统计", x = "变量", y = "缺失值占比 (%)") +
    theme_minimal()
  
  # 返回可视化图和统计表格
  return(list(plot = p, table = missing_stats))
}

# 生成自定义报告,仅保留需要的模块
create_report(
  your_data,  # 替换成你的数据集
  custom = list(
    "缺失值统计" = custom_missing_report
  ),
  sections = c("introduction", "missing", "distribution")  # 保留介绍、缺失值、分布模块
)

这个自定义函数会生成横向条形图,变量按缺失值占比排序,每个条形旁标注具体的缺失值数量和占比,宽数据集下也能清晰查看。

二、替代工具推荐

如果不想修改DataExplorer,以下几个工具更贴合你的需求:

1. DataProfileR

完全对标Pandas Profile Report,默认生成包含缺失值统计(数量+占比)、变量分布的HTML报告,用法极简:

library(DataProfileR)

# 生成HTML报告
DataProfileR(your_data, output_file = "数据探查报告.html")

报告结构和Pandas Profile高度一致,每个变量单独展示缺失值信息和分布图表,宽数据集适配良好。

2. skimr + R Markdown

skimr专注生成简洁的变量统计信息,包含缺失值、分布特征,配合R Markdown可以快速生成结构化HTML报告:

library(skimr)
library(rmarkdown)

# 生成变量统计摘要
skim_summary <- skim(your_data)

# 渲染为HTML报告
render(input = textConnection("---
title: '数据探查报告'
output: html_document
---

## 变量统计摘要
```{r, echo=FALSE}
skim_summary

"), output_file = "数据探查报告.html")

skimr的输出中,每个变量会明确列出缺失值数量、占比,数值变量附带直方图和分位数,分类变量展示频数分布。

### 3. visdat + R Markdown
visdat主打缺失值和变量分布可视化,适合需要更直观图形展示的场景,结合R Markdown整合为HTML报告:
```r
library(visdat)
library(ggplot2)
library(rmarkdown)

render(input = textConnection("---
title: '数据探查报告'
output: html_document
---

## 缺失值分布
```{r, echo=FALSE, fig.width=12}
vis_miss(your_data, sort_miss = TRUE) + ggtitle("变量缺失值排序")

数值变量分布

vis_dist(your_data[, sapply(your_data, is.numeric)])

分类变量分布

for (col in colnames(your_data)[sapply(your_data, is.factor)]) {
  print(ggplot(your_data, aes(x = .data[[col]])) + geom_bar() + ggtitle(paste(col, "分布")))
}

"), output_file = "数据探查报告.html")

内容的提问来源于stack exchange,提问作者circle25
相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 19:26:28