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

当我从列表中获取列名时,dplyr summarise将不起作用?

当我从列表中获取列名时,dplyr summarise将不起作用的原因是,dplyr summarise函数要求列名是直接指定的,而不是通过变量或列表获取的。这是因为dplyr在解析和优化查询时需要明确的列名信息。

解决这个问题的方法是使用dplyr的across函数结合tidyselect包中的all_of函数来动态选择列。通过将列名包装在all_of函数中,可以将列表中的列名作为参数传递给across函数,从而实现对列的操作。

下面是一个示例代码:

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

# 列名列表
column_names <- c("col1", "col2", "col3")

# 创建数据框
df <- data.frame(col1 = 1:5, col2 = 6:10, col3 = 11:15)

# 使用across和all_of进行列操作
df <- df %>%
  summarise(across(all_of(column_names), mean))

# 输出结果
print(df)

在上述代码中,我们首先将列名存储在一个列表中。然后,我们使用all_of函数将列名列表作为参数传递给across函数,以选择需要操作的列。最后,我们使用summarise函数对选定的列进行求均值操作。

推荐的腾讯云相关产品:腾讯云云服务器(CVM),腾讯云数据库(TencentDB),腾讯云对象存储(COS),腾讯云人工智能(AI),腾讯云物联网(IoT),腾讯云区块链(BC),腾讯云音视频处理(VOD),腾讯云移动开发(Mobile),腾讯云网络安全(Security)等。您可以访问腾讯云官方网站了解更多产品信息和详细介绍。

腾讯云官方网站链接:https://cloud.tencent.com/

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

相关·内容

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

2.2 sample_n dplyr 包的 sample_n(tbl, size) 函数可以数据集 tbl 随机无放回抽取 size 行,如: > d.class %>% sample_n(size...,再转换回长列表,比如: 这个数据的问题是 x, y 应该放在两列却合并成一个了,2018 和 2019 应该放在一列却分成了两列。...extract 除了seperate 外,函数 extract() 可以按照某种正则表达式表示的模式指定列拆分出对应于正则表达式捕获组的一列或多列内容。...列表列 nest 与unnest 对于数据框,我们可以使用split 将数据框按某列拆分为多个数据框,并储存在列表。...实际上,tibble 允许存在数据类型是列表 (list) 的列,子数据框就是以列表数据类型保存在 tibble 的一列的。

10.9K30

R语言数据处理:飞机航行距离与到达延误时间有什么关系??

这一点,我想大部分使用EXCEL的童鞋都深有体会,写论文,这么多的数据进行处理,手动汇总、筛选、变换,工作量实在是太大。...包,该软件包的飞机航班数据将用于本文中dplyr包相关函数的演示。...2.2 列名重命名 为了让列名简单易懂,可以使用rename函数,进行列名重命名。...2.3 删除缺失数据 我们采用dplyr的filter()函数,进行缺失数据的删除。脚本输入代码: myFlights <- filter(myFlights,!...3.2 应用函数及组合结果 我们使用dplyr的summarize()函数,进行数据统计指标的获取及组合。计算出不同目的地的平行航行距离以及平均延误时间。

3.1K40
  • Day6 呦呦鹿鸣—学习R包

    iris可知其为150×5的列表dplyr五个基础函数1.mutate(),新增列mutate(test, new = Sepal.Length * Sepal.Width)mutate(df, z =...%>% summarise(mean(Sepal.Length), sd(Sepal.Length))R的管道操作符2:count统计某列的unique值count(test,Species)分类变量每个变量值的频数...左连left_join列表书写顺序决定了最终合成列表列的顺序left_join(test1, test2, by = 'x')left_join(test2, test1, by = 'x')3.全连...full_joinfull_join( test1, test2, by = 'x')列表书写顺序决定了最终合成列表列的顺序,每列数值的类型必须相同;以"by"的列为标准,补齐列表,空值为"NA"4....anti_jointest1去除交叉部分的列表anti_join(x = test2, y = test1, by = 'x')6.简单合并bind_rows(test1,test2)函数需要两个表格列数相同

    16610

    「R」dplyr 列式计算

    ❝在近期使用 「dplyr」 进行多列选择性操作,如 mutate_at() ,发现文档提示一系列的 「dplyr」 函数变体已经过期,看来后续要退休了,使用 across() 是它们的统一替代品,所以最近抽时间针对性的学习和翻译下...第二个参数是 .fns,它是应用到数据列上的一个函数或者是一个函数列表,它也可以是像 ~.x/2 这样 「purrr」 风格的公式语法。...下面是联合 across() 和它最喜欢的动词函数 summarise()的一些例子。但你也可以联合 across() 和任意其他的 「dplyr」 动词函数,我们后面会提及。...如果你想要通过函数转换列名,可以使用 rename_with()。..._at() 函数是 「dplyr唯一你需要手动引用变量名的地方,这让它们比较奇怪且难以记忆。 为什么过了这么久才发现 across()?

    2.4K10

    来增加dplyr的可操作性

    dplyr包在数据变换方面非常的好用,它有很多易用性的体现:比如书写数据内的变量名不需要引号包裹,也不需要绝对引用,而这在多数baseR函数中都不是这样的,比如: library(tidyverse)...的这种易用性是有代价的,假如想要对分析工作稍微增加一些编程属性,就会发现dplyr的异常情况,比如将分组变量赋值给一个变量,使用变量来进行分组: ### 分组变量group_var无法完成工作 group_var...辅助dplyr完成编程工作 上面的例子,之所以group_var不起作用,是因为dplyr直接将group_var当做变量名,然后去mtcars寻找名字叫做group_var的列,这肯定是会报错的。...mean_manual获得此分组元素需要使用ensym,也就是ensym(.grp_v),因为此时的.grp_v是形参,如果要获取实参的值并转换为Symbol,需要使用ensym,而不是sym。...PS:对于ggplot2而言也是一样的,它的aes也是不能直接使用变量传入列名,如果想要使用赋值了字符串的变量来传值的话,可以如上述操作。 但是也有更简单的的办法,它是?

    2.4K31

    生信星球Day4 学习R包

    /p/861224f4251aoptions() 设置R运行过程的一些选项设置options()$repos 查看使用install.packages安装的默认镜像options()$BioC_mirror...查看使用bioconductor的默认镜像R最重要的两个配置文件: 一是.Renviron,能够设置R的环境变量; 二是.Rprofile,如果启动找到这个文件,那么就替我们先运行一遍(这个过程就是在启动...="https://mirrors.ustc.edu.cn/bioc/") install.packages("dplyr") #或BiocManager::install("dplyr")library...(dplyr)dplyr五个基础函数mutate() 新增列,(x,列名=相关数据)select() 筛选列,(x,列号或列名)filter() 筛选行,(x,列名==想要的行)需要逻辑判断arrange...() 按某1列或某几列对整个表格进行排序,默认从小到大,用desc()可从大到小summarise() 汇总,配合group_by()分组,可以mean()求平均值,sd()求标准差test <-

    20440

    生信学习小组day6--大姚

    ") library(dplyr) 示例数据采用内置数据集iris的简化版 test <- iris[c(1:2,51:52,101:102),] 二、dplyr五个基础函数 1.mutate(),新增列...("Petal.Length", "Petal.Width") select(test, one_of(vars)) ##筛出以vars的一系列字符串命名的列 3.filter()筛选行 filter...== "versicolor",只要满足其中一个筛选条件就能被筛选 4.arrange(),按某1列或某几列对整个表格进行排序 从小到大排序: arrange(test, Sepal.Length) 大到小排序...: arrange(test, desc(Sepal.Length)) 5.summarise():汇总 可结合group_by使用实用性更强 summarise(test, mean(Sepal.Length...), sd(Sepal.Length)) 看,通过管道可以将test的数据直接传递给group_by函数使用,也可以将分组后的species数据传递给summarise函数使用 test %>%

    81100

    两个神奇的R包介绍,外加实用小抄

    1:3表示1到三。如需一列需要填入三个无规律的数字,可以用向量c(1,3,4),同样如果填是字符串也需要加双引号。 认识Tidy Data TidyData?泰迪数据是神马数据?...gather括号里的分别是: 数据框名,需合并的列名,合并后的key列名,value列名。 (正常来说列名不需要加‘’,大概是因为示例这个列名是纯数字的缘故。)...") 两种办法拼起来~ 一个是R自带的rbind,一个是dplyr里的bind_rows 按行拼接,列数、列名需要一致 rbind(frame1,frame4)# frame1 %>%bind_rows...这是根据相同的列名进行合并,当在两个表格列名不一样,需要在括号内加 by=c("col1"="col2") 其中col1和2分别是在两个表格的需合并的列名 semi_join,anti_join...在我们生信技能树后台回复 小抄 或者 cheatsheet 即可获取哈。

    2.5K40

    生信星球学习小组Day6-R包学习 Jerry

    镜像设置 (1)在Rstudio程序设置设置,可以用options()$repos来检验,但有时候还是不能成功,也不能下载Bioconductor的包 (2)代码设置 # options函数就是设置R...") library(dplyr) test <- iris[c(1:2,51:52,101:102),] #示例数据 2. dplyr五个基础函数 a. mutate(),新增列 mutate(test...arrange(),按某1列或某几列对整个表格进行排序 arrange(test, Sepal.Length)#默认从小到大排序 arrange(test, desc(Sepal.Length))#用desc大到小...e. summarise():汇总 对数据进行汇总,结合group_by实用性强 summarise(test, mean(Sepal.Length), sd(Sepal.Length))# 计算Sepal.Length...內连inner_join,取交集 inner_join(test1, test2, by = "x") #不加by会自动获取相同的列名 ## x z y ## 1 b A 2 ## 2 e B 5

    20121

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

    library(tidyverse) #加载以下tidyverse核心的packages: ggplot2:画图,可视化数据 dplyr:操控数据,过滤、排序等 tidyr:清理数据 readr:(...文件读取数据 purrr:(提供好用的编程函数 tibble:data.frame升级款 stringr:处理字符,查找、替换等 forcats:处理因子问题 ?...; 查看数据,不再会一行显示不下(会自动隐藏一部分,自带head);有两种方式来创建tibble格式的数据: 1....:数据整理 dplyr包的下述五个函数用法 4.1 筛选: filter 4.2 排列: arrange 4.3 选择: select 4.4 变形: mutate 4.5 汇总: summarise...4.6 分组: group_by # install.packages("dplyr") library(dplyr) 4.1 筛选: filter() #按给定的逻辑判断筛选出符合要求的子数据集

    4.1K10

    R||R语言基础(三)_R包

    :102),] 这里的“,”怎么理解呢,在我们上一期推文中提到,提取元素z[x,y]指代提取z第x行,第y列,如果我们只需要提取行,则应该写作z[x,],同理,如果只需要提取列,应该写作z[,y]...() 按列筛选 1)按列号筛选 select(test,1) select(test,c(1,5)) #提取第一列和第五列 由上图可以看出直接提取也是可以的 2)按列名筛选 select(test...) 按某1列或某几列对整个表格进行排序 arrange(test, Sepal.Length) #默认从小到大排序 arrange(test, desc(Sepal.Length)) #用desc大到小...5.summarise() 汇总 summarise(test, mean(Sepal.Length), sd(Sepal.Length)) #计算Sepal.Length的平均值和标准差 group_by...test %>% group_by(Species) %>% summarise(mean(Sepal.Length),sd(Sepal.Length)) dplyr处理关系数据 01数据准备

    3.4K50

    DAY6-学习R包

    ") 加载 library和require 使用一个R包需先安装再加载 library(dplyrdplyr五个基础函数mutate(),新增列——mutate(test, new = Sepal.Length...test的第一列和第五列select(test,Sepal.Length)#筛选test名为Sepal.Length的一列按列名筛选select(test, Petal.Length, Petal.Width...)选择字符向量的列,select不能直接使用字符向量筛选,需要使用one_of函数vars <- c("Petal.Length", "Petal.Width")select(test, one_of...arrange(),按某1列或某几列对整个表格进行排序arrange(test, Sepal.Length)#默认从小到大排序arrange(test, desc(Sepal.Length))#用desc大到小...summarise():汇总summarise(test, mean(Sepal.Length), sd(Sepal.Length))mean()计算平均值sd()计算标准差group_by(test,

    23130

    学习小组Day6-bubble

    Linux的.bashrc/环境文件一样的R的环境文件.Rprofile即可首先用file.edit()来编辑文件:file.edit('~/.Rprofile')然后在文件添加上述两行代码即可保存重新加载一下...R(很像Linux的source ~/.bashrc)可以看到配置好镜像啦1.2 安装install.packages(“包”) # 普通安装(CRAN安装)BiocManager::install...(“包”) # Bioconductor安装(主要是一些生物学包)取决于你要安装的包存在于CRAN网站还是Biocductor,存在于哪里?...select(test,1) # 选择第一列select(test,c(1,5)) # 选择第一和五列 select(test,Sepal.Length) # 直接选择列名② 按列名筛选select(test...⑤ .summarise():汇总对数据进行汇总操作,结合group_by使用实用性强summarise(test, mean(Sepal.Length), sd(Sepal.Length))# 计算Sepal.Length

    25650

    学习R包

    dplyr包有很多函数,为了防止dplyr的函数名与其他函数产生冲突,使用时前面加上“包名::”dplyr五个基础函数mutate(),新增列select(),按列筛选按列号筛选注意筛选内容与表格内容的统一...,包括大小写按列名筛选filter()筛选行arrange(),按某1列或某几列对整个表格进行排序arrange(test, Sepal.Length)#默认从小到大排序arrange(test, desc...(Sepal.Length))#用desc大到小summarise():汇总,对数据进行汇总操作,结合group_by使用实用性强summarise(test, mean(Sepal.Length),...半连接:返回能够与y表匹配的x表所有记录semi_joinSemi-Join半连接,当外表在内表中找到匹配的记录之后,Semi-Join会返回外表的记录。...但即使在内表中找到多条匹配的记录,外表也只会返回已经存在于外表的记录。

    12110
    领券