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

从dplyr开始按分组对多个列的非`NA`进行计数

,可以使用group_by()summarize()函数来实现。

首先,使用group_by()函数按照需要进行分组的列进行分组。然后,使用summarize()函数结合across()函数来对每个分组进行计数。

下面是一个示例代码:

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

# 创建一个示例数据框
df <- data.frame(
  group1 = c("A", "A", "B", "B", "C"),
  group2 = c("X", "Y", "X", "Y", "Z"),
  value1 = c(1, NA, 3, 4, 5),
  value2 = c(NA, 2, 3, NA, 5)
)

# 按照group1和group2进行分组,并计算非NA值的数量
result <- df %>%
  group_by(group1, group2) %>%
  summarize(across(starts_with("value"), ~sum(!is.na(.))))

# 输出结果
print(result)

输出结果如下:

代码语言:txt
复制
# A tibble: 5 x 4
# Groups:   group1 [3]
  group1 group2 value1 value2
  <chr>  <chr>   <int>  <int>
1 A      X           1      0
2 A      Y           0      1
3 B      X           1      1
4 B      Y           1      0
5 C      Z           1      1

在这个示例中,我们按照group1group2两列进行分组,并计算了value1value2两列的非NA值的数量。最后的结果是一个包含分组列和计数结果的数据框。

这种方法可以用于各种情况,例如统计某个时间段内不同地区的销售数量、统计不同用户类型的访问次数等。

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

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

相关·内容

R数据科学|3.6内容介绍

上节我们选择现有的和使用mutate添加新做了介绍。现在对数据框使用summarize()进行分组摘要进行介绍。...group_by() 和 summarize()组合构成了使用 dplyr 包时最常用操作之一:分组摘要。...例如,如果日期分组一个数据框应用与上面完全相同代码,那么我们就可以得到每日平均延误时间: by_day <- group_by(flights, year, month, day) summarize...is_na()):缺失值计数 n_distinct():计算出唯一值数量 count():一个简单辅助函数,用于只需要计数情况 3.6.4 常用摘要函数 位置度量:median(x),mean...3.6.5 多个变量分组 当使用多个变量进行分组时,每次摘要统计会用掉一个分组变量。

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

    使用tidyverse进行简单数据处理: 盘一盘Tidyverse| 筛行选之select,玩转列操作 盘一盘Tidyverse| 只要你要只要我有-filter 筛选行 Tidyverse|数据分分合合...,一分多,多合一 Tidyverse| XX_join :多个数据表(文件)之间各种连接 本次介绍变量汇总以及分组汇总。...3.758 1.199333 1.3,summarise_at完成指定变量汇总 summarise_at配合vars,可以更灵活筛选符合条件,然后进行汇总 iris %>%...group_by() 和 summarise() 组合构成了使用 dplyr 包时最常用操作之一:分组摘要 2.1 按照Species分组,变量汇总 iris %>% group_by...is.na(x)) :返回缺失值梳理; n_distinct(x):返回 唯一值数量。

    2.5K60

    Day-6 香波🐟

    Day-6 学习R包什么是R包R包是多个函数集合安装和加载R包1.镜像设置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...(),某1或某几列整个表格进行排序arrange(test, Sepal.Length)#默认从小到大排序arrange(test, desc(Sepal.Length))#用desc大到小5....summarise():汇总对数据进行汇总操作,结合group_by使用实用性强summary(test)#区分base包里summary和dplyr包里summarise函数summarise(test...unique值dplyr处理关系数据即将2个表进行连接,演示数据来自生信星球1.內连inner_join,取交集2.左连left_join3.全连full_join4.半连接:返回能够与y表匹配x表所有记录

    16510

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

    由于业务中接触数据量很大,于是不得不转战开始寻求数据操作效率。于是,data.table这个包就可以很好满足大数据量数据操作需求。...2、条件行筛选 从前用subset方式进行筛选比较多, new=14,select=a:f) (1)单变量 现在data.table与dplyr from_dplyr =....SDcols常于.SD用在一起,他可以指定.SD中所包含,也就是.SD取子集。...(x)] 还有 data$x 如果有很多名字很长指标,data.table中如果进行遍历呢? data[,1]是不行,选中方式是用列名。...2016-11-28补充: 留言区大神给了一个比较好选中方式,其中主要就是with使用: data.table取时,可以用data[,1,with=FALSE]取data第一

    8.6K43

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

    带着这个问题,我们将首先使用dplyr给出航班数据进行处理。...由于本次分析目标是找出航行距离与到达延误时间关系,所以我们得根据到达目的地对数据进行分组,从而计算出不同目的地平行航行距离以及平均延误时间; 应用函数(Apply):不同组数据,应用相应函数获取所需统计指标...拿上述代码进行举例,在没用管道之前,代码是这样: by_dest <- group_by(myFlights, destination)#目的地分组 delay_sum <- summarise(...delay_sum group_by(destination) %>% #delay_sum进行分组 summarise( count = n(), dist = mean(distance, na.rm...= TRUE), delay = mean(arr_delay, na.rm = TRUE) ) %>% #对分组delay_sum进行计算统计 filter(count > 20)#统计结果进行噪音剔除

    3.1K40

    「R」dplyr 列式计算

    ❝在近期使用 「dplyr进行选择性操作,如 mutate_at() 时,发现文档提示一系列dplyr」 函数变体已经过期,看来后续要退休了,使用 across() 是它们统一替代品,所以最近抽时间针对性学习和翻译下...本文是第一篇,介绍是「列式计算」,后续还会有一篇介绍行处理数据。...(a:d, mean)) 我们将从讨论 across() 基本用法开始,特别是将其应用于 summarise() 中和展示如何联合多个函数使用它。...你可以通过第二个参数传入一个函数(包括 lambda 函数)命名列表来每个变量同时执行多个函数操作。..._if, _at, _all 「dplyr」 以前版本允许以不同方式将函数应用到多个:使用带有_if、_at和_all后缀函数。这些功能解决了迫切需求而被许多人使用,但现在被取代了。

    2.4K10

    R语言数据分析利器data.table包 —— 数据框结构处理精讲

    ;而data.table 会将数字转化为字符 data.table数据框也可使用dplyr管道,这里不作阐述。...选项,也可以是一个字符,skip="string",那么会包含该字符开始读; select,需要保留列名或者号,不要其它; drop,需要取掉列名或者号,要其它; colClasses...(sum(y)), by=x] # x进行分组分组y求总和 DT[, sum(y), keyby=x] #x进行分组分组y求和,并且结果按照x排序 DT[, sum(y)...函数画图,对于每个x分组画一张图 DT[, m:=mean(v), by=x] #DTx分组,直接在DT上再添加一m,m内容是mean(v),直接修改并且不输出到屏幕上 DT[, m:=mean...(y=max(y)), lapply(.SD, min)), by=x, .SDcols=y:v] #DT取y:v之间x分组,输出max(y),y到v之间求最小值输出。

    5.9K20

    Day6 呦呦鹿鸣—学习R包

    x + y)2.select(),筛选,名称选择变量(1)号筛选select(test,1)# 筛选test数据集第一iris %>% select(1:3)# 筛选iris数据集第一到第三...(2)列名筛选select(test, Petal.Length, Petal.Width)iris %>% select(Species, Sepal.Length)3.filter()筛选行/返回具有匹配条件行可以按照某分类变量进行数据筛选...filter(test, Species == "setosa")starwars %>% filter(species == "Human")4.arrange(),某1或某几列整个表格进行排序...2个表进行连接1.內连inner_join,取交集inner_join(test1, test2, by = "x")满足两个条件:有相同变量名,相同变量名里有相同元素;2.左连left_join列表书写顺序决定了最终合成列表中顺序...,每数值类型必须相同;以"by"列为标准,补齐列表,空值为"NA"4.半连接:返回能够与y表匹配x表所有记录semi_join交集表中test1部分semi_join(x = test1,

    16610

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

    安装与加载R包镜像设置目的:加快加载速度方法:应用R配置文件:Rprofile说起来这个,就必须提到Rstudio最重要两个配置文件:在刚开始运行Rstudio时候,程序会查看许多配置内容,其中一个就是...newselect(), 筛选(1)号筛选#筛选一select(test,1)#筛选多select(test,c(1,5))(2)列名筛选#筛选一select(test,Sepal.Length...1或某几列整个表格进行排序arrange(test, Sepal.Length)#按照Sepal.Length这一排序,默认从小到大排序arrange(test, desc(Sepal.Length...平均值和标准差# 先按照Species分组,计算每组Sepal.Length平均值和标准差group_by(test, Species) #test按照Species分组summarise(group_by...left_join(test2, test1, by = 'x') # 全保留test2,合并test1能匹配上数据# NA区别:前者为数字型NA,后者为字符型NA全连full_joinfull_join

    74930

    使用dplyr进行数据转换

    library(nycflights13) library(tidyverse) dplyr最常用5个函数: • 值筛选观测(filter())。...• 进行重新排序(arrange())。 • 名称选取变量(select())。 • 使用现有变量函数创建新变量(mutate())。...• 将多个值总结为一个摘要统计量(summarize())。 函数使用方法: (1) 第一个参数是一个数据框。 (2) 随后参数使用变量名称(不带引号)描述了在数据框上进行操作。...如果列名不只一个,那么就使用后面的在前面排序基础上继续排序 arrange(flights, year, month, day) 使用 desc() 可以进行降序排序: arrange(flights...dep_delay, hours = air_time / 60, gain_per_hour = gain / hours ) summarize 使用summarize()进行分组摘要

    95810

    R语言之 dplyr

    这个包以一种统一规范更高效地处理数据框。dplyr 包里处理数据框所有函数第一个参数都是数据框名。 下面以 MASS 包里 birthwt 数据集为例,介绍 dplyr 包里常用函数用法。...arrange(birthwt, bwt, age) 如果想把数据框按照某个变量大到小进行排序,可以借助函数 desc( ) 实现。...使用 select( ) 选择 函数 select( ) 用于选择数据框中(变量)。 # 下面的命令选择数据框里面的 bwt、age、race 和 smoke 这 4 个变量组成新数据框。...as_tibble(birthwt) 下面我们将会看到,把函数 group_by( ) 和 summarise( ) 联合使用能方便地变量进行分组统计。 7....使用传递符 %>% 组合多个操作 我们经常需要对一个数据框做一系列操作,后面一个操作输入需要用前一个操作输出结果。

    43220

    R语言第二章数据处理(9)数据合并

    dplyr包中join函数进行数据框合并,它们数据框合并原理同样是数据框合并原理是这样:首先在A数据框某一指定每一行内容在B数据框表指定进逐行匹配,直到A中所有行匹配完为止。...NA right,行:显示y中所有的行; :显示x,y中所有,未匹配到值,不论字符数字,全显示为NA full,先显示x中所有的行在y中匹配结果,接着显示y中未匹配上内容 match匹配规则...join为系列函数,包括inner_join、left_join、semi_join和anti_join函数 dplyrjoin函数似乎没有plyr包join函数match参数,只能进行所谓...结果, 行:显示x中所有能在y匹配到行,并显示结果匹配依据进行了排序; :显示x中所有。...,data2, c('city' = 'city')) anti_join函数 结果, 行:显示x中所有未能在y中匹配到行, 并显示结果匹配依据进行了排序; :显示x中所有

    2.4K20
    领券