首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

通过dplyr汇总未在汇总函数中指定的列

dplyr 是一个用于数据操纵的 R 语言包,它提供了一系列简洁且强大的函数来处理数据框(data frames)。在使用 dplyr 进行数据汇总时,通常会使用 summarise()aggregate() 函数。然而,这些函数默认情况下只会返回在汇总函数中明确指定的列。如果你希望在汇总结果中包含未在汇总函数中指定的列,可以使用 mutate() 结合 group_by() 来实现。

以下是一个示例代码,展示如何在使用 dplyr 进行数据汇总时保留未在汇总函数中指定的列:

代码语言:txt
复制
# 安装并加载 dplyr 包
if (!require("dplyr")) {
  install.packages("dplyr")
  library(dplyr)
}

# 创建示例数据框
df <- data.frame(
  group = c(rep("A", 3), rep("B", 3)),
  value = c(1, 2, 3, 4, 5, 6),
  other_column = c("x", "y", "z", "w", "v", "u")
)

# 使用 dplyr 进行数据汇总,同时保留未在汇总函数中指定的列
result <- df %>%
  group_by(group) %>%
  summarise(
    sum_value = sum(value),
    .groups = 'drop'  # 用于在 summarise 后移除分组
  ) %>%
  left_join(df %>% distinct(group, other_column), by = "group")

print(result)

在这个例子中,我们首先创建了一个包含 groupvalueother_column 列的数据框。然后,我们使用 group_by() 函数按 group 列分组,并使用 summarise() 函数计算每组的 value 列之和。为了保留 other_column 列,我们在 summarise() 之后使用了 left_join() 函数,将汇总结果与原始数据框中按 group 分组并去重的 other_column 列进行左连接。

输出结果将包含每个组的 sum_value 以及对应的 other_column 值。

参考链接:

这种方法的优势在于它允许你在汇总数据的同时保留其他相关信息,这在数据分析和报告中非常有用。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

C++数学函数汇总

math.h 数学函数库,一些数学计算公式具体实现是放在math.h里,具体有:1 三角函数 double sin (double); double cos (double); double tan...(double);2 反三角函数 double asin (double); 结果介于[-PI/2, PI/2] double acos (double); 结果介于[0, PI] double atan...double log10 (double);c++自然对数函数:log(N)   以10为底:log10(N)但没有以2为底函数但是可以用换底公式解 决:log2(N)=log10(N)/log10...0.5, 1] ) double ldexp (double x, int p); 与frexp相反, 已知x, p求f8 取整与取余 double modf (double, double*); 将参数整数部分通过指针回传..., 返回小数部分 double fmod (double, double); 返回两参数相除余数 source: 《C & C++ Code Capsules》9 平方根 sqrt

1.8K31
  • 如何通过函数快速完成年度薪酬数据汇总

    我们在做年度薪酬数据分析时候需要对一年内每个月薪酬数据进行分析,在进行数据分析前提工作我们需要对每个月薪酬数据进行汇总,我们每个月薪酬数据表格可能是这样 ?...,那你还要去汇总表格里对数据进行更新,所以这个很麻烦,所以今天我们来说说如何快捷来进行这波操作。...这个时候在你EXCEL里会有一张新建表格,这个表格就是你要汇总12个月汇总表,但是这个时候只是调用了1月表格,我们需要调用1-12月表格。 ? 3.点击右键-表格--编辑查询 ?...4.这个时候会出现一个文本命令,你需要做是来输入函数,调用另外几个月数据。 ?...我们已经完成了薪酬数据汇总! 小伙伴们快去试试吧!

    95411

    Power Pivot3大汇总函数配套组合函数

    返回 仅返回小计,不返回可被引用具体值 C. 注意事项 只有在SUMMARIZE函数中使用。 如果分组依据有多,而RollUp未汇总全部,则汇总未选择。(可以看案例加深理解) D....返回 增加一判断是否是总计 C. 注意事项 只能用于SUMMARIZECOLUMNS函数 D. 作用 判断是否为总计。 E. 案例 ?...返回 表——需要显示汇总依据及值生成表。 C. 注意事项 如果和ROLLUPISSUBTOTAL和ISSUBTOTAL函数一起使用,参数要一致 D. 作用 重新添加包含空度量值行 E....解释: 如果单纯通过SummarizeColumns函数进行分组的话,如果计算值为0的话,分组内容会缺失,但是通过AddMissingItems函数可以进行恢复。...上面姓名为无值这项因为成绩为空,通过函数可以在分组汇总后进行恢复显示。 8. ROLLUPISSUBTOTAL A.

    1.4K20

    tidyverse|数据分析常规操作-分组汇总(sumamrise+group_by)

    使用tidyverse进行简单数据处理: 盘一盘Tidyverse| 筛行选之select,玩转列操作 盘一盘Tidyverse| 只要你要只要我有-filter 筛选行 Tidyverse|数据分分合合...一 summarize汇总 汇总函数 summarise(),可以将数据框折叠成一行 ,多与group_by()结合使用 1.1 summarise完成指定变量汇总 统计均值,标准差,最小值,个数和逻辑值...Sepal.Width Petal.Length Petal.Width #1 5.843333 3.057333 3.758 1.199333 1.3,summarise_at完成指定变量汇总...summarise_at配合vars,可以更灵活筛选符合条件,然后进行汇总 iris %>% summarise_at(vars(ends_with("Length"),Petal.Width...group_by() 和 summarise() 组合构成了使用 dplyr 包时最常用操作之一:分组摘要 2.1 按照Species分组,变量汇总 iris %>% group_by

    2.5K60

    R 数据整理(七:使用tidyr和dplyr处理数据框 2.0)

    dplyr distinct() 函数可以对数据框指定若干变 量,然后筛选出所有不同值,每组不同值仅保留一行。...) rename() 这个函数可能出现在其它包,保险起见写成 dplyr::rename()。...extract 除了seperate 外,函数 extract() 可以按照某种正则表达式表示模式从指定拆分出对应于正则表达式捕获组或多内容。...R 数据整理(六:根据分类新增列种种方法 1.0) 其他函数 slice dplyr函数 slice(.data, ...) 可以用来选择指定序号行子集,正序号表示保留,负序号表示排除。...dplyr summarse_at() 函数可以指定一批变量名与一批统计函数,自动命名结果变量,如: d.cancer %>% summarise_at( c("v0", "v1"), list(

    10.9K30

    R语言︱数据集分组、筛选(plit – apply – combine模式、dplyr、data.table)

    包 #dplyr基本函数 filter——数据筛选(筛选观测值,行) filter(Hdma_dat,pclass == 1) ###################################...## #dplyr基本函数 select——子集选取(筛选变量,) select(Hdma_dat,pclass,survived) ##选择pclass变量 ?...可以看到,计算结果第一实际上是“SELLERID.CLIENT”,我们需要把它拆分成两并调换顺序才行。...(iris$setosa)] #按照照setosa大小,重排Sepal.Length数据 四、dplyr与data.table data.table可是比dplyr以及python...data.table比较简洁一步搞定,dplyr花了两步,不过也dplyr也可以通过%>%来实现一步搞定。%>%功能是用于实现将一个函数输出传递给下一个函数第一个参数。

    20.8K32

    Day6-学习R包

    Day6-学习R包参考文献:生信星球今天第六天,我爱学习,坚持学习感觉真好(暗示)1.新知识/概念:R包(R package)R包是什么?R程序包是多个函数集合,具有详细说明和例子。...包含R函数,数据,帮助文档,描述文件等。按照一定规则,存放到网站。为什么要安装R包?特定分析功能,需要用相应程序包实现。...例如:作图包ggplot2使用到哪个包就去安装和加载,知道要用函数以及简单使用规律,查看帮助文档入门,统计学学到一定程度,不要默认值,去指定值,这个过程可以调试。...")library(dplyr)dplyr五个基础函数1.mutate(),新增列mutate(test, new = Sepal.Length * Sepal.Width)2.select(),按筛选...arrange(test, Sepal.Length)#默认从小到大排序arrange(test, desc(Sepal.Length))#用desc从大到小5.summarise():汇总对数据进行汇总操作

    15530

    Day6——R包

    BioC_mirror="https://mirrors.ustc.edu.cn/bioc/") install.packages("dplyr")library(dplyr)dplyr五个基础函数示例数据...vars <- c("Petal.Length", "Petal.Width")select(test, one_of(vars))#选择字符向量,select不能直接使用字符向量筛选,需要使用...one_of函数R语言中使用vars参数指定数据框需要分析字段索引范围在R语言中,我们经常需要对数据框进行分析和处理。...这时,我们可以使用vars参数来指定需要分析字段索引范围,从而提取出感兴趣字段进行后续操作。vars参数是dply包select函数一个参数,它允许我们通过指定字段索引范围来选择需要字段。...x表所有记录反连接anti_joinanti_join(x = test2, y = test1, by = 'x')#返回无法与y表匹配x表所记录简单合并bind_rows()函数需要两个表格数相同

    15710

    r语言学习day6

    )select()筛选filter()筛选arrange()按排序排序summarise():汇总管道操作 %>% (cmd/ctr + shift + M)inner_join(test1, test2..., by = "x")inner_join()函数和merge()函数都用于将两个数据框按照某些共同进行合并,但它们有一些区别:语法差异:inner_join()函数来自于dplyr包,其语法更加简洁明了...merge()函数是基础R函数,其语法为merge(x, y, by = NULL, ...),也是用来合并两个数据框,by参数也是指定用于合并列名。...例如,当两个数据框存在重复列名时,inner_join()会自动为其中一个数据框重复列名添加后缀以区分,而merge()函数则不会自动处理,需要手动指定后缀。...总体而言,inner_join()函数提供了更为简洁和易读语法,适用于在数据处理大多数情况,但是如果你更熟悉基础R函数或者需要与基础R其他函数进行交互,那么merge()函数也是一个很好选择

    15010

    学习R包

    dplyr包有很多函数,为了防止dplyr函数名与其他函数产生冲突,使用时前面加上“包名::”dplyr五个基础函数mutate(),新增列select(),按筛选按号筛选注意筛选内容与表格内容统一...(Sepal.Length))#用desc从大到小summarise():汇总,对数据进行汇总操作,结合group_by使用实用性强summarise(test, mean(Sepal.Length),...+ shift + M)同时执行三件事(加载任意一个tidyverse包即可用管道符号)count统计某unique值dplyr处理关系数据即将2个表进行连接內连inner_join,取交集左连left_join...但即使在内表中找到多条匹配记录,外表也只会返回已经存在于外表记录。...注意返回不同反连接:返回无法与y表匹配x表所记录anti_join注意返回不同简单合并在相当于base包里cbind()函数和rbind()函数;注意,bind_rows()函数需要两个表格数相同

    12110

    学习小组DAY6-Creep

    今天学习内容是R包,R包是多个函数集合,本次主要是学习dplyr包。安装和加载R包设置镜像每次下载R包时,都需要重新配置镜像。...为了避免这种繁琐操作可以使用file.edit('~/.Rprofile')建一个R配置文件文件直接进行设置,在配置文件运行以下代码options("repos" = c(CRAN="https:...:102),]dplyr五个基础函数mutate(),新增列select(),按筛选filter()筛选行arrange(),按某1或某几列对整个表格进行排序summarise():汇总进行汇总时可以结合...group_by,实用性更强dplyr两个实用技能管道操作 %>% (cmd/ctr + shift + M)管道操作可以直接省略中间步骤,导出最后结果count统计某unique值dplyr处理关系数据将...简单合并在相当于base包里cbind()函数和rbind()函数;注意,bind_rows()函数需要两个表格数相同,而bind_cols()函数则需要两个数据框有相同行数以上就是本次学习内容了

    16980

    问与答93:如何将工作簿引用文件全部复制并汇总指定文件夹

    Q:我在做一个非常巨大数据,一个主工作簿,还有非常多个被引用数据工作簿散布在计算机很多位置。...因为很多数据是临时来,时间一长,我已经搞不清到底引用了哪些工作簿,有没有办法自动把相关工作簿打包在一起? A:这只能使用VBA来解决了。...例如下图1所示,在工作簿工作表Sheet1有几个单元格分别引用了不同位置工作簿数据,我们要把引用这几个工作簿复制到该工作簿所在文件夹。 ?...String Dim iPos2 As Integer Dim strPath As String Dim strFile As String '设置工作表且将该工作表公式单元格赋给变量...wks = Worksheets("Sheet1") Set rngFormulas =wks.UsedRange.SpecialCells(xlCellTypeFormulas) '查找字符

    2.4K30

    ExcelVBA汇总文件夹所有文件指定工作表到一个文件并进行求和

    ExcelVBA汇总文件夹所有文件指定工作表到一个文件并进行求和 【问题】:有一个格式固定表格,我们下发给下面的单位做,上交上来有很多个文件,想要做汇总下面各学校交上来表格并求和 1.许多个文件...2.文件中表格格式一样,并且都在Sheet1工作表 3.想要汇总到这个表 【解决问题】分两步走 1.先把各表格汇总到一个文件一个一个表放置 2.再用公式=sum('*'!...B5)进行所有工作指定单元格求和 ===第一步用以下代码=============== Sub 汇总指定文件指定工作表() WithApplication.FileDialog(msoFileDialogFolderPicker....Close False EndWith End If mfile = Dir Loop End Sub 运行,可以得到所有的文件指定工作表汇总到一个文件...B6)把所有工作表是B6单元格求和= 在b6输入= sum(‘*’!B6),Enter, 把所有工作表是B6单元格求和,再右拉,再下拉,就可以啦

    2.1K20

    tidyverse:R语言中相当于pythonpandas+matplotlib存在

    ——将左侧值应用到右侧数据data位置 管道函数在tidyverse,管道符号是数据整理主力,可以把许多功能连在一起,而且简洁好看,比起R基本代码更加容易阅读!...:数据整理 dplyr下述五个函数用法 4.1 筛选: filter 4.2 排列: arrange 4.3 选择: select 4.4 变形: mutate 4.5 汇总: summarise...() #当对数据集通过group_by()添加了分组信息后,mutate(),arrange() 和 summarise() 函数会自动对这些 tbl 类数据执行分组操作。...#key:将原数据框所有赋给一个新变量key #value:将原数据框所有值赋给一个新变量value #…:可以指定哪些聚到同一 #na.rm:是否删除缺失值 widedata <-...:unit() #unite(data, col, …, sep = “_”, remove = TRUE) #data:为数据框 #col:被组合新列名称 #…:指定哪些需要被组合 #sep:组合之间连接符

    4.1K10
    领券