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

如何在dplyr的跨函数中将函数参数粘合到.names?

dplyr包中,across()函数允许你在数据框(data frame)的多个列上应用同一个函数。如果你想在.names参数中使用函数参数,可以通过以下步骤实现:

基础概念

.names参数用于自定义输出列的名称。它接受一个字符串模板,其中可以包含{.col}(当前列名)和{fn}(函数名)等占位符。

相关优势

  • 灵活性:允许你根据不同的列名和函数名动态生成列名。
  • 可读性:生成的列名更具描述性,便于理解数据。

类型

.names参数接受一个字符串模板,可以使用多种占位符来动态生成列名。

应用场景

当你需要对数据框中的多列应用相同的函数,并且希望生成的列名包含函数名和列名时,这个功能非常有用。

示例代码

假设我们有一个数据框df,并且我们希望对其中的数值列计算均值和标准差:

代码语言:txt
复制
library(dplyr)

# 示例数据框
df <- data.frame(
  A = c(1, 2, 3),
  B = c(4, 5, 6),
  C = c(7, 8, 9)
)

# 使用across()函数计算均值和标准差,并自定义列名
result <- df %>%
  mutate(
    across(
      .cols = where(is.numeric),
      .fns = list(mean = mean, sd = sd),
      .names = "{.col}_{fn}"
    )
  )

print(result)

解释

  • .cols = where(is.numeric):选择所有数值类型的列。
  • .fns = list(mean = mean, sd = sd):定义要应用的函数及其对应的名称。
  • .names = "{.col}_{fn}":使用模板生成列名,其中{.col}表示当前列名,{fn}表示函数名。

输出

代码语言:txt
复制
   A B C     A_mean     A_sd     B_mean     B_sd     C_mean     C_sd
1  1 4 7 2.000000 1.000000 5.000000 1.000000 8.000000 1.000000
2  2 5 8 2.000000 1.000000 5.000000 1.000000 8.000000 1.000000
3  3 6 9 2.000000 1.000000 5.000000 1.000000 8.000000 1.000000

参考链接

通过这种方式,你可以灵活地生成包含函数参数和列名的列名,从而提高代码的可读性和结果的清晰度。

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

相关·内容

数据分析:多诊断指标ROC分析

置信区间:pROC::roc函数计算AUC95%置信区间,这是通过使用非参数方法(自助法)或正态近似方法来实现。ci = TRUE参数指示函数计算这个置信区间。...这段R代码定义了一个名为get_ROC_CI函数,用于计算并汇总不同数据集ROC曲线分析结果,并最终将结果整合到同一个图形上展示。...下面是代码详细解释:数据分析:多诊断指标ROC分析1-10. get_ROC_CI函数接受五个参数:inputdata:输入数据框,包含用于计算ROC曲线数据。...index:用于预测指标列名称。group:包含响应变量(“健康”或“癌症”)分组列名称。group_names:一个向量,包含group列中所有可能组名。...将三个结果数据框合并,并使用dplyr::mutate和factor函数调整type列,以确保所有的类型按照相同顺序排列。这有助于后续在同一图形上统一展示。

20710
  • R语言入门(一)之数据处理

    (例如向量c(1,2,3)),times为对象中每个元素重复次数(times=c(9,7,3)就是将x向量1重复9次,2重复7次,3重复3次) #rep(x,times)重复x,times次;使用...table(a1$chemical) table(a1$chemical, useNA = "ifany") #求因子出现频数;table()函数默认忽略缺失值(NA),要在频数统计中将NA视为一个有效类别...,请设定参数 useNA=“ifany” ?...write.table(f, "R11.txt", sep = "\t", row.names = FALSE) write.csv(f, "R11.csv", row.names = F) #将f内容写入...duplicated(a1$Species) #duplicated函数是一个可以用来解决向量或者数据框重复值函数,它会返回一个TRUE或FALSE向量,以标注该索引所对应值是否是前面数据所重复

    10.2K40

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

    2.2 sample_n dplyr sample_n(tbl, size) 函数可以从数据集 tbl 中随机无放回抽取 size 行,: > d.class %>% sample_n(size...在 dplyr rename() 中用 “新名字 = 旧名字” 格式修改变量名,: d2.class % dplyr::rename(h=height, w=weight...R 数据整理(六:根据分类新增列种种方法 1.0) 其他函数 slice dplyr函数 slice(.data, ...) 可以用来选择指定序号行子集,正序号表示保留,负序号表示排除。...使用统计相关参数计算列表内相关内容。sum, mean, median, min, max。...dplyr summarse_at() 函数可以指定一批变量名与一批统计函数,自动命名结果变量,: d.cancer %>% summarise_at( c("v0", "v1"), list(

    10.9K30

    「R」dplyr 列式计算

    ❝在近期使用 「dplyr」 进行多列选择性操作, mutate_at() 时,发现文档提示一系列dplyr函数变体已经过期,看来后续要退休了,使用 across() 是它们统一替代品,所以最近抽时间针对性学习和翻译下...原文来自 [dplyr 文档](Column-wise operations • dplyr (tidyverse.org "dplyr 文档")) - 2021-01❞ 同时对数据框多列执行相同函数操作经常有用...载入包: library(dplyr, warn.conflicts = FALSE) 基本用法 across() 有两个主要参数: 第一个参数是 .cols ,它用来选择你想要操作列。...第二个参数是 .fns,它是应用到数据列上一个函数或者是一个函数列表,它也可以是像 ~.x/2 这样 「purrr」 风格公式语法。...你可以通过对第二个参数传入一个函数(包括 lambda 函数命名列表来对每个变量同时执行多个函数操作。

    2.4K10

    ggstatsplot | 一个满足你日常统计需求高颜值R包(一)

    ggbetweenstats( dat, x = mpaa, y = rating, plot.type = "violin" # box, boxviolin, violin)p4图片---3.5 把这几个图组合到一起...ps:你也可以选择别的拼图包,cowplot等combine_plots( list(p1, p2, p3, p4), plotgrid.args = list(nrow = 2), annotation.args...复杂分组间比较用到函数是grouped_ggbetweenstats4.1 比较不同genrempaa各组rating grouped_ggbetweenstats(data = dat,...,这个时候可以利用purr包进行批量绘制## 分割数据并转为list(由于数据较大,这里仅选取3个genre进行下一步分析)dat_list % dplyr::filter(genre...$genre, drop = T)## 查看list参数length(dat_list)names(dat_list)## 用`pmap`函数进行批量绘制plot_list <- purrr::pmap

    57220

    STL之序列式容器(deque和list)

    成员函数 remove_if() 期望传入一个一元断言作为参数。 一元断言接受一个和元素同类型参数或引用,返回一个布尔值。断言返回 true 所有元素都会被移除。...sort() 有两个版本:无参 sort() 函数将所有元素升序排列。第二个版本 sort() 接受一个函数对象或 lambda 表达式作为参数,这两种参数都定义一个断言用来比较两个元素。...在另一个版本 merge() 函数中,可以提供一个比较函数作为该函数第二个参数,用来在合并过程中比较元素。...这个函数参数 list 容器中元素移动到当前容器中指定位置前面。可以移动单个元素、一段元素或源容器全部元素。...第二个参数是元素来源。第三个参数是一个指向源list容器中被接元素迭代器,它会被插入到第一个参数所指向位置之前。

    28320

    GMSB文章九:微生物相关关系组间波动

    通过分析不同分组间微生物相关性波动情况,secom_linear 函数能够揭示微生物群落结构动态变化,这对于理解微生物群落对环境变化响应至关重要。...ANCOMBC 包中一个函数,用于在微生物组数据中进行线性相关性稀疏估计。...以下是 secom_linear 函数主要参数和它们作用:data: 包含微生物组数据列表。assay_name: 指定数据集中哪个检测类型(“counts”)。...Nonlinear correlationssecom_linear 函数是 ANCOMBC 包中一个函数,用于在微生物组数据中进行线性相关性稀疏估计。...以下是 secom_linear 函数主要参数和它们作用:data: 包含微生物组数据列表。assay_name: 指定数据集中哪个检测类型(“counts”)。

    9110

    手把手教你R语言方差分析ANOVA

    如果你数据已经存储在一个外部文件中(CSV、Excel或RData),你需要使用适当R函数read.csv(), readxl::read_excel(), load()等)将其加载到R环境中...()等函数)或进行变量选择(使用子集选择或dplyrselect()函数)。...在R中,你可以使用aov()函数来执行方差分析。这个函数需要一个公式,该公式描述了你要分析数值型变量和分类变量之间关系。...(公式是:Y是检验变量,X是分组变量);再使用summary函数获取单因素方差分析结果。...;Mean Sq列是平方和平均值,通过将平方和除以每个参数自由度来计算;F value列是F检验检验统计量。这是每个自变量均方除以残差均方。

    42510

    如何使用TCGAbiolinks下载TCGA数据并整理

    其后是数据库法,数据库虽然方便,但是并不会随着官网更新变动, GDC Xena Hub 最后一次更新时间是 2019-08-28 , Firehose 更是停留在了更遥远 2016_01_28 ....TCGAbiolinks 包是从TCGA数据库官网接口下载数据R包。它一些函数能够轻松地帮我们下载数据和整理数据格式。其实就是broad研究所firehose命令行工具R包装!..., 运行 TCGAbiolinks:::getGDCprojects()$project_id 获取各个癌种项目id, 总计有74个. library(TCGAbiolinks) TCGAbiolinks...可见 GDCprepare 函数需要强大内存和硬盘空间, 我本地电脑是做不到, 因此继续使用老方案进行数据处理. 目前为止, 通过 TCGAbiolinks 进行数据下载目的已经圆满达到....该函数应用场景是:当需要在R中读取或写入数据时,需要指定存储数据文件夹路径。但在执行R代码时,可能需要将当前工作目录更改为存储数据文件夹路径。如果文件夹不存在,需要创建文件夹。

    6.8K42

    使用R或者Python编程语言完成Excel基础操作

    平台:Excel有适用于Windows、macOS等操作系统版本,并且还有在线版本,增加了其可访问性。...宏和VBA:对于更高级用户,可以学习如何录制宏和编写VBA代码来自动化重复性任务。 函数学习:逐渐学习更多内置函数逻辑函数、文本函数、统计函数等。...查找和引用函数VLOOKUP、HLOOKUP、INDEX和MATCH等。 统计函数AVERAGE、MEDIAN、STDEV等。 逻辑函数IF、AND、OR等。...通过dplyr和tidyr包,我们可以轻松地对数据进行复杂操作。 在R语言中,即使不使用dplyr和tidyr这样现代包,也可以使用基础包中函数来完成数据操作。...,并且不如dplyr和tidyr这样专用包那样直观和方便。

    21610

    数据分析:宏基因组数据荟萃分析

    这种方法特别适用于跨区域、人群大规模比较研究,能够帮助科学家们识别与特定健康状况或环境因素相关微生物标志物。...meta 包中 metagen 函数用于进行宏基因组数据荟萃分析,其核心原理是综合多个独立研究结果,以评估不同组别间在微生物群落组成上差异性,并得出更加全面和可靠结论。...以下是该函数进行荟萃分析一般原理:数据整合:将不同研究数据集整合在一起。这些数据集可能来自不同样本、人群或环境条件,但都关注相似的生物学问题。...函数d_fromlm: 计算线性模型t值标准偏差SE_d: 计算t值标准偏差标准误,该值用于荟萃分析asin_trans: relative abundance数据转换(线性模型要求数据服从正态分布...函数用于荟萃分析,它基于单个线性模型结果再使用meta::metagen进行荟萃分析。

    10310

    《高效R语言编程》6--高效数据木匠

    使用变量名非标准化求值更高效,见R语言 dplyr传递参数_自由 平等~忠诚 奉献-CSDN博客[2]。只是函数名多了个下划线那么简单吗?...使用dplyr高效处理数据 这个包名意思是数据框钳,相比基础R优点是运行更快、与整洁数据和数据库配合好。函数部分灵感来自SQL。 ?...RODBC是一个资深包,提供R与SQL server接口。DBI包提供了通用接口与驱动程序类集,RSQLITE,是访问数据库统一框架,允许其他驱动程序以模块包添加。...数据库与dplyr 必须使用src_*()函数创建一个数据源。# 使用data.table()处理数据 是dplyr替代,两个哪个好存在争议,最好学一个一直坚持下去。...参考资料 [1] bit.ly: http://bit.ly/broomvignette [2] R语言 dplyr传递参数_自由 平等~忠诚 奉献-CSDN博客: https://blog.csdn.net

    1.9K20

    R语言宏基因组学统计分析(第四章)笔记

    = 1, check.names=FALSE,stringsAsFactors=FALSE) check.names=FALSE有两个原因:1、告诉函数忽略重复变量输入(如一个样本种级别表包含多个相同名称种...= 0) [1] 865 一些图形函数 par()函数用来设置和查询图形参数,mar, mfcol,mfrow最常用。打印边距大小是以文本行为单位来衡量。...rep()和grep()这两个函数可以用来创建样本分组信息,: group_1 <- data.frame(c(rep("fecal",length(grep("drySt", colnames(tab...)))),rep("cecal", length(grep("CeSt", colnames(tab)))))) 4.2 dplyr包简介 dplyr包提供了一系列数据操纵函数,是plyr包第二版,...与之前函数嵌套从里到外调用不同,管道是从左到右依次传递,例如: install.packages("dplyr") library(dplyr) head(iris) # Sepal.Length

    1.8K20

    R︱高效数据操作——data.table包(实战心得、dplyr对比、key灵活用法、数据合并)

    , -State) dplyr中是arrange函数,而data.table是setorder函数,同时降序方式。...DT数据集按照x分组,然后计算v变量和、最小值、最大值。 (2)dplyr函数利用%>%(链式操作)来改进: 链式操作是啥意思呢?...%>%功能是用于实现将一个函数输出传递给下一个函数第一个参数。注意这里,传递给下一个函数第一个参数,然后就不用写第一个参数了。在dplyr分组求和过程中,还是挺有用。...于是只能借助get+names组合。 for (i in 1:5){ data[,....(get(names(data)[i]))] } 这个是我目前在遍历时候用到代码,不知道观众有没有更好呢?

    8.6K43

    上手即用,分组统计检验直方图绘图脚本分享

    再来看下他脚本: 三个函数组成,代码写还是比较规范,管道用66,虽然赋值符合和我不是一个风格,这个萝卜青菜啦!...第一列是样本名称(X轴坐标),第二列是样本分组信息,第三列为值(Y轴坐标) # xlab,ylab和labs 分别自定义X轴名称,Y轴名称和图例标题名称 # colors 自定义颜色,默认为NULL,函数会根据...p_show 图片上差异显著性展示方式,*: p <= 0.05 **: p <= 0.01 ***: p <= 0.001 ****: p <= 0.0001 # add 在条形图上添加统计值样本标准差...,标准误,详细参数见https://www.rdocumentation.org/packages/ggpubr/versions/0.4.0/topics/add_summary library...) dt = df %>% pivot_longer(cols = -Group,names_to = 'gene') data1 = dt[,c(2,1,3)] data2 = dt[,c(2,1,3

    55420
    领券