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

基于行值执行colsum:R语言合并多数据集并按项汇总计数

R语言实现多数据集合并、按项目汇总计数及行值列求和方案

没问题,我给你整理了两种常用的R语言实现方案,包含可直接运行的示例代码,你可以根据自己的习惯选择:

一、先构造示例数据集

为了方便你测试,我先模拟3个包含items和counts的数据集:

# 构造3个示例数据集
df1 <- data.frame(items = c("A", "B", "C"), counts = c(10, 20, 30))
df2 <- data.frame(items = c("B", "C", "D"), counts = c(15, 25, 35))
df3 <- data.frame(items = c("A", "D", "E"), counts = c(5, 10, 20))

二、合并数据集并按项目汇总计数

方案1:使用tidyverse(dplyr包)

这个方案代码更直观易读,适合日常数据处理:

# 先加载dplyr包(如果没安装先运行 install.packages("dplyr"))
library(dplyr)

# 1. 合并三个数据集
combined_df <- bind_rows(df1, df2, df3)

# 2. 按items分组汇总计数,分组后自动去除重复的项目行
summary_df <- combined_df %>%
  group_by(items) %>%
  summarise(total_counts = sum(counts, na.rm = TRUE)) %>%  # na.rm=TRUE处理缺失值
  ungroup()  # 取消分组状态,方便后续操作

# 查看最终结果
print(summary_df)

方案2:使用Base R(无需额外安装包)

如果不想依赖第三方包,用Base R也能轻松实现:

# 1. 合并三个数据集
combined_df_base <- rbind(df1, df2, df3)

# 2. 按items分组求和,自动去重
summary_df_base <- aggregate(counts ~ items, data = combined_df_base, FUN = sum, na.rm = TRUE)

# 查看最终结果
print(summary_df_base)

三、基于行值执行列求和操作

这里分两种常见场景给你实现代码:

场景1:对每行的多个数值列求和

如果你的数据有多个计数相关的列,需要计算每行的总和:

# 构造包含多列数值的示例数据
multi_col_df <- data.frame(items = c("A", "B", "C"),
                           count1 = c(10, 20, 30),
                           count2 = c(5, 15, 25),
                           count3 = c(2, 8, 12))

# 方法1:dplyr实现
multi_col_df <- multi_col_df %>%
  mutate(row_total = rowSums(select(., starts_with("count")), na.rm = TRUE))

# 方法2:Base R实现
multi_col_df$row_total_base <- rowSums(multi_col_df[, grep("count", names(multi_col_df))], na.rm = TRUE)

# 查看结果
print(multi_col_df)

场景2:根据行的项目值,对指定列求和

比如你想针对某个特定项目(比如"A"),计算它所有计数列的总和:

# 计算items为"A"的行的所有count列总和
a_total <- sum(multi_col_df[multi_col_df$items == "A", grep("count", names(multi_col_df))], na.rm = TRUE)
cat("项目A的总计数:", a_total, "\n")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:00:53