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

R语言统计数据集分类与数值变量数量并使用ggplot2绘制柱状图

实现步骤与代码

第一步:解决全量变量类型识别问题

str()默认仅输出前100个列的信息,你可以通过修改list.len参数直接输出全部列的类型:

# 输出所有列的类型信息,无需用summary遍历
str(你的数据集名, list.len = ncol(你的数据集名))

第二步:分类统计两类变量的数量

针对100万行的大数据集,推荐用高效的极值判断逻辑识别0/1分类变量,避免逐行取唯一值的性能损耗:

library(dplyr)
library(ggplot2)

# 替换为你实际的数据集名称
df <- 你的数据集名

# 批量识别变量类型
var_type_df <- df |>
  summarise(across(everything(), function(col) {
    # 仅对数值型列做二分类判断,非数值列默认归为其他/你可按需调整逻辑
    if (!is.numeric(col)) return("其他类型")
    col_min <- min(col, na.rm = TRUE)
    col_max <- max(col, na.rm = TRUE)
    distinct_cnt <- n_distinct(col, na.rm = TRUE)
    if (col_min == 0 && col_max == 1 && distinct_cnt <= 2) {
      "0/1分类型变量"
    } else {
      "数值型变量"
    }
  })) |>
  t() |>
  as.data.frame() |>
  setNames("变量类型")

# 统计两类变量的数量
type_count <- var_type_df |>
  count(变量类型, name = "变量数量")

第三步:绘制对比柱状图

ggplot(type_count, aes(x = 变量类型, y = 变量数量, fill = 变量类型)) +
  geom_col(width = 0.6, alpha = 0.8) +
  # 柱子顶部标注具体数量
  geom_text(aes(label = 变量数量), vjust = -0.3, size = 4) +
  labs(
    title = "变量类型数量对比",
    x = "变量类型",
    y = "变量个数"
  ) +
  theme_minimal() +
  theme(legend.position = "none")

注意事项

  • 如果你的0/1分类型变量已经设置为factor格式,可在判断逻辑中补充is.factor(col)的判定条件,适配你的实际数据结构
  • 若数据中存在缺失值,可按需将NA加入判断允许值范围,调整对应判定逻辑即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 12:39:05