首页
学习
活动
专区
工具
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
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券