r - data.table - 删除 R 中计数不等的所有组
问题描述
我想按 ID 对我的 data.table 进行分组,并删除多年来不count
具有相同值的所有组。
也许类似于如果 ID 和计数组合不是唯一的,则删除具有该 ID 的所有行?
我正在寻找适合大型 data.table 的解决方案
数据:
# example data
ID <- c(rep("A", 5), rep("B", 6), rep("C", 2), rep("D", 3), rep("E", 4))
count <- c(rep(3, 5), rep(4, 6), rep(1, 2), c(1,3,3), rep(1, 4))
year <- as.numeric(c(rep(c(2012, 2013, 2014, 2015), 4), 2012, 2013, 2015, 2016))
mydata <- cbind(ID, year, count)
mydata <- as.data.table(mydata)
mydata <- setorder(unique(mydata))
解决方案
不确定这是最优雅的解决方案,也许有人有更好的解决方案。同时:
mydata[, k := length(unique(count)), by=ID][k==1][,k:=NULL]
编辑:从上面的链接复制,正确的解决方案:
mydata[ , if(uniqueN(count) == 1) .SD, by = ID]
推荐阅读
- jenkins - 让 Jenkins 管道在 Gitlab ui 中显示为 gitlab 原生管道
- .net - 如何将 ListView ItemTemplate 中的内容向右对齐?
- rfid - Windows Mobile - RFID 阅读器 - IP 30
- android - 如何使用 Fiddler 捕获流量并使用 Jmeter 从没有 wi-fi 的 Android 设备记录流量
- c# - IActionResult 参数未传递
- java - RecyclerView 工具栏上的 NullPointerException
- ajax - Ajax 发布到 aws api-gateway 返回访问控制检查响应
- vb.net - 在“绑定”数据网格视图中设置工具提示
- sql - presto/aws athena - 选择最新版本的记录
- python - 熊猫:如何在情节中标记分组数据?