R语言实现保留唯一行并添加重复行计数列的方法
解决方法
下面提供几种实用的实现方案,满足你保留唯一行并统计重复次数的需求:
方法一:dplyr包(tidyverse生态,简洁直观)
使用dplyr的count()函数可以直接按所有列分组统计,一步到位:
library(dplyr) dat_count <- dat %>% count(across(everything()), name = "count")
across(everything())指定对所有列进行分组,name参数自定义新增的计数列名为count,运行后即可得到目标结果。
方法二:data.table包(高效处理大数据)
如果你的数据量较大,data.table的分组统计效率会更优:
library(data.table) setDT(dat) dat_count <- dat[, .(count = .N), by = names(dat)]
.N代表每组的行数,by = names(dat)表示按数据框的所有列分组。
方法三:基础R实现(无需额外依赖)
不想加载第三方包的话,可通过基础R函数组合实现:
# 获取所有唯一行 unique_rows <- unique(dat) # 将每行转为字符串,统计各字符串出现次数 row_str <- apply(dat, 1, paste, collapse = "|") count_table <- table(row_str) # 为唯一行匹配对应次数 unique_rows$count <- count_table[apply(unique_rows, 1, paste, collapse = "|")]
该方法逻辑清晰,适合小数据量场景使用。
内容的提问来源于stack exchange,提问作者user22966282
相关产品推荐
相关产品推荐

