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

在dplyr包中使用summarise和across,同时区分数字列和非数字列

在dplyr包中,summarise和across是用于数据汇总和处理的两个重要函数。它们可以帮助我们对数据进行聚合计算,并且可以同时对数字列和非数字列进行不同的操作。

首先,summarise函数用于对数据进行聚合计算,返回一个包含汇总结果的数据框。它可以接受多个参数,其中每个参数都是一个聚合函数,用于对指定的列进行计算。常见的聚合函数包括sum、mean、median、min、max等。

举个例子,假设我们有一个包含学生成绩的数据框,其中包含了学生的姓名、科目和成绩。我们可以使用summarise函数计算每个科目的平均成绩:

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

# 假设数据框名为df,包含列name、subject和score
df %>%
  group_by(subject) %>%
  summarise(avg_score = mean(score))

在上面的例子中,我们使用group_by函数对数据按照科目进行分组,然后使用summarise函数计算每个科目的平均成绩,并将结果保存在avg_score列中。

接下来,across函数可以用于同时对多个列进行相同的操作。它可以接受多个参数,其中每个参数都是一个列选择器,用于指定要操作的列。常见的列选择器包括all_of、starts_with、ends_with、contains等。

举个例子,假设我们有一个包含学生信息的数据框,其中包含了学生的姓名、年龄和性别。我们可以使用across函数将所有的字符列转换为大写:

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

# 假设数据框名为df,包含列name、age和gender
df %>%
  mutate(across(where(is.character), toupper))

在上面的例子中,我们使用where函数选择所有的字符列,然后使用across函数将这些列中的值转换为大写。

需要注意的是,summarise和across函数可以结合使用,以实现对不同类型的列进行不同的操作。例如,我们可以对数字列计算平均值,对字符列计算出现次数:

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

# 假设数据框名为df,包含列name、age和gender
df %>%
  summarise(across(where(is.numeric), mean),
            across(where(is.character), ~length(unique(.))))

在上面的例子中,我们使用where函数选择所有的数字列,并使用mean函数计算它们的平均值;然后使用where函数选择所有的字符列,并使用匿名函数计算它们的唯一值个数。

总结起来,summarise和across函数是dplyr包中用于数据汇总和处理的重要函数。它们可以帮助我们对数据进行聚合计算,并且可以同时对数字列和非数字列进行不同的操作。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云计算服务:https://cloud.tencent.com/product/cvm
  • 腾讯云数据库服务:https://cloud.tencent.com/product/cdb
  • 腾讯云服务器运维服务:https://cloud.tencent.com/product/cds
  • 腾讯云音视频处理服务:https://cloud.tencent.com/product/mps
  • 腾讯云人工智能服务:https://cloud.tencent.com/product/ai
  • 腾讯云物联网服务:https://cloud.tencent.com/product/iotexplorer
  • 腾讯云移动开发服务:https://cloud.tencent.com/product/mobdev
  • 腾讯云存储服务:https://cloud.tencent.com/product/cos
  • 腾讯云区块链服务:https://cloud.tencent.com/product/baas
  • 腾讯云元宇宙服务:https://cloud.tencent.com/product/vr
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

「R」dplyr 列式计算

近期使用dplyr」 进行多选择性操作,如 mutate_at() 时,发现文档提示一系列的 「dplyr」 函数变体已经过期,看来后续要退休了,使用 across() 是它们的统一替代品,所以最近抽时间针对性的学习翻译下...原文来自 [dplyr 文档](Column-wise operations • dplyr (tidyverse.org "dplyr 文档")) - 2021-01❞ 同时对数据框的多执行相同的函数操作经常有用...载入: library(dplyr, warn.conflicts = FALSE) 基本用法 across() 有两个主要的参数: 第一个参数是 .cols ,它用来选择你想要操作的。..._if, _at, _all 「dplyr」 以前的版本允许以不同的方式将函数应用到多个使用带有_if、_at_all后缀的函数。这些功能解决了迫切的需求而被许多人使用,但现在被取代了。..._at() 函数是 「dplyr唯一你需要手动引用变量名的地方,这让它们比较奇怪且难以记忆。 为什么过了这么久才发现 across()?

2.4K10
  • R语言基于dplyr实现数据快捷操作

    R语言处理大数据方面一直是被人诟病的地方,那么有人就为R语言打造了一个dplyr可以实现高效的数据预处理,减少内存的消耗,提升处理效率。今天就给大家详细看下这个的具体功能。...首先看下的安装: install.packages("dplyr") 接下来我们看下具体的功能: 1. as_tibble 将大的数据转化为友好展示的格式。...实例: library(dplyr) mtcars <- as_tibble(mtcars) ? 2. arrange 对数据集进行整体基于单列或者多进行排序。...16. across 针对某一进行操作,两个参数:第一个为列名,第二个为操作函数。...最后我们看下更高级的应用实例: ###自定义函数通道的应用 var_summary <- function(data, var) { data %>% summarise(n = n(),

    1.5K40

    玩转数据处理120题|R语言版本

    data的行号 难度:⭐ R解法 rownames(df) <- NULL # 如果是tibble则索引始终是按顺序 备注 有时我们修改数据会导致索引混乱 65 异常值处理 题目:删除所有换手率为数字的行...is.na(as.numeric(df$`换手率(%)`)),] # 或者根据前几题的经验,数字就是'--' df % filter(`换手率(%)` !...(df$col1 %in% df$col2),1] 90 数据提取 题目:提取第一第二出现频率最高的三个数字 难度:⭐⭐⭐ R语言解法 count(unlist(c(df$col1,df$col2...(col3,col2,everything()) 94 数据提取 题目:提取第一位置1,10,15的数字 难度:⭐⭐ R语言解法 df[c(1,10,15) + 1,1] 95 数据查找 题目:查找第一的局部最大值位置...难度:⭐⭐ 备注 从数据1的前10行读取positionName, salary两 R语言解法 #一步读取文件的指定用readr或者原生函数都没办法 #如果文件特别大又不想全部再选指定可以用如下办法

    8.8K10

    DAY6-学习R

    安装和加载R镜像设置使用R配置文件使用file.edit()编辑文件——输入file.edit('~/.Rprofile') options("repos" =c(CRAN="https://mirrors.tuna.tsinghua.edu.cn...()$BioC_mirror 即配置好安装R安装命令是install.packages(“”)或BiocManager::install(“”)install.packages("dplyr")...加载 libraryrequire 使用一个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

    23130

    Day-6 香波🐟

    Day-6 学习R什么是RR是多个函数的集合安装和加载R1.镜像设置options("repos" = c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/...")library(dplyr)3.加载library()dplyr五个基础函数1.mutate(),新增列2.select(),按筛选(1)按号筛选(2)按列名筛选3.filter()筛选行4.arrange...summarise():汇总对数据进行汇总操作,结合group_by使用实用性强summary(test)#区分base里的summarydplyr里的summarise函数summarise(test..., mean(Sepal.Length), sd(Sepal.Length))# 计算Sepal.Length的平均值标准差# 先按照Species分组,计算每组Sepal.Length的平均值标准差...semi_join5.反连接:返回无法与y表匹配的x表的所记录anti_join6.简单合并:相当于base里的cbind()函数rbind()函数;注意,bind_rows()函数需要两个表格数相同

    16510

    生信学习小组Day6笔记—Chocolate Ice

    安装与加载R镜像设置目的:加快加载速度方法:应用R的配置文件:Rprofile说起来这个,就必须提到Rstudio最重要的两个配置文件:刚开始运行Rstudio的时候,程序会查看许多配置内容,其中一个就是...-微信公众号:生信星球首先用file.edit('~/.Rprofile')打开.Rprofile文件;然后.Rprofile文件内添加下列两行代码# options函数就是设置R运行过程的一些选项设置...”):安装Biocductor的加载Rlibrary()或者require()Rstudio只需要安装一次,但每次启动都需要重新加载Rdplyr的五个基础函数以R自带的iris数据框为例...():汇总结合group_by使用实用性强summarise(test, mean(Sepal.Length), sd(Sepal.Length))# 计算Sepal.Length的平均值标准差# 先按照...Species分组,计算每组Sepal.Length的平均值标准差group_by(test, Species) #test按照Species分组summarise(group_by(test, Species

    74930

    生信学习-Day6-学习R

    3 加载 libraryrequire,两个函数均可。使用一个,是需要先安装再加载,才能使用里的函数。... iris 数据集中,Petal.Length Petal.Width 分别代表花瓣的长度宽度。 因此,当你使用 vars 变量时,你实际上是引用那些具有这些名称的。...dplyr的filter()函数中使用时,它可以用于筛选数据框匹配给定集合任一值的行。这行代码的作用如下: filter(test, ...): test数据框筛选行。...summarise(mean(Sepal.Length), sd(Sepal.Length)):每个分组内,这一步计算了Sepal.Length的平均值(mean)标准差(sd)。...2.inner_join(test1, test2, by = "x")內连inner_join,取交集 R,inner_join(test1, test2, by = "x") 是一个使用 dplyr

    20310

    数据清洗与管理之dplyr、tidyr

    通过行列值引用:数据集[行值,值] 如行值或值仅1个数字,表示仅引用该行或的数据 > iris[1,] #引用第1行数据 Sepal.Length Sepal.Width Petal.Length...,其中因数据过长,使用head()函数取前5个数字 [1] 5.1 4.9 4.7 4.6 5.0 如行值或值为组合数据,则表示引用组合行列交叉位置的数据 > iris[1:5,1:3] Sepal.Length...通过变量名引用(多用于二维数组):数据集$变量名 > head(iris$Petal.Length,5) [1] 1.4 1.4 1.3 1.5 1.4 1 创建新变量 R语言中,可以通过变量计算/...的下述五个函数用法【高级数据管理】 # install.packages("dplyr") library(dplyr) #使用datasets的mtcars数据集做演示,首先将过长的数据整理成友好的...key #value:将原数据框的所有值赋给一个新变量value #…:可以指定哪些聚到同一 #na.rm:是否删除缺失值 widedata <- data.frame(person=c('Alex

    1.8K40

    玩转数据处理120题|Pandas&R

    df.reset_index(drop=True) R解法 rownames(df) <- NULL # 如果是tibble则索引始终是按顺序 备注 有时我们修改数据会导致索引混乱 65 异常值处理 题目:删除所有换手率为数字的行...is.na(as.numeric(df$`换手率(%)`)),] # 或者根据前几题的经验,数字就是'--' df % filter(`换手率(%)` !...= 2, col3 = 3) # 或者用类似pandas的方法 names(df) <- c('col1','col2','col3') 89 数据提取 题目:提取第一不在第二出现的数字...(df$col1 %in% df$col2),1] 90 数据提取 题目:提取第一第二出现频率最高的三个数字 难度:⭐⭐⭐ Python解法 temp = df['col1'].append(df...select(col3,col2,everything()) 94 数据提取 题目:提取第一位置1,10,15的数字 难度:⭐⭐ Python解法 df['col1'].take([1,10,15

    6.1K41

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

    今天继续学习R语言基础的R使用,以Rdplyr为例 数据准备 01 R的安装 install.packages(“dplyr”) 或BiocManager::install(“dplyr”)...:102),] 这里的“,”怎么理解呢,我们上一期推文中提到,提取元素时z[x,y]指代提取z第x行,第y,如果我们只需要提取行,则应该写作z[x,],同理,如果只需要提取,应该写作z[,y]...M) 加载任意一个tidyverse都可以使用管道符号,啥是tidyverse呢?...其核心包有ggplot、readr、tibble、purrr、 tidyr 、dplyr、ggplot、forcats stringr8个. 我们这里用的是dplyr,因此可以使用管道。...() 简单合并(相当于base里的cbind()函数rbind()函数) 需要注意:bind_rows()将行连接起来,需要两个表格的数相同;同理bind_cols()将连接起来,需要两个表格的行数相同

    3.4K50

    学习R

    R是多个函数的集合,具有详细的说明示例。...使用一个R:先安装,再加载,最后使用实操代码(依旧以dplyr为例)options("repos"=c(CRAN="http://mirrors.tuna.tsinghua.edu.cn/CRAN/"...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

    12110
    领券