R语言按日期分组统计article_id数量生成唯一值计数新数据表
R按日期分组统计文章ID数量的实现方案
方法1:使用dplyr包(语法易读,适合新手)
属于tidyverse生态下的常用分组统计方案,代码可读性高:
若未安装依赖包先执行安装:install.packages("dplyr")
统计代码如下:
library(dplyr) # 替换下方代码中的df为你的原数据表变量名 new_df <- df %>% group_by(date) %>% # 若需要统计去重后的article_id数量,将n()替换为n_distinct(article_id) summarise(article_count = n()) %>% ungroup()
方法2:使用data.table包(运行速度快,适合大数据量)
从你给出的样例输出来看,原表本身就是data.table类型,可以直接用原生语法操作:
library(data.table) # 替换下方代码中的dt为你的原data.table变量名 new_dt <- dt[, .(article_count = .N), by = date] # 若需要统计去重后的article_id数量,使用以下代码即可 # new_dt <- dt[, .(article_count = uniqueN(article_id)), by = date]
方法3:基础R实现(无需安装额外依赖包)
如果不想引入第三方包,可以用R原生函数实现:
# 替换下方代码中的df为你的原数据表变量名 new_df <- aggregate(article_id ~ date, data = df, FUN = length) # 去重计数版本 # new_df <- aggregate(article_id ~ date, data = df, FUN = function(x) length(unique(x)))
以上三种方案输出的结果都满足每个日期唯一、新增列统计对应日期文章数量的需求,可根据使用习惯自由选择。
内容的提问来源于stack exchange,提问作者Emily Frank
相关产品推荐
相关产品推荐

