r - 如何计算整齐的 data.table 中每个组的出现次数?
问题描述
我想在一个整洁的 data.table 中计算每个组有多少个 TRUE 标记:
DT <- data.table( id = c(1 ,1 ,1 ,2 ,2 ,2 ,2 ,2 )
, marker = c(TRUE,FALSE,FALSE,TRUE,FALSE,TRUE,TRUE,FALSE))
所以我尝试DT[marker==TRUE, num_markers := .N, by = id]
了,输出:
id marker num_markers
1: 1 TRUE 1
2: 1 FALSE NA
3: 1 FALSE NA
4: 2 TRUE 3
5: 2 FALSE NA
6: 2 TRUE 3
7: 2 TRUE 3
8: 2 FALSE NA
相反,所需的输出是:
id marker num_markers
1: 1 TRUE 1
2: 1 FALSE 1
3: 1 FALSE 1
4: 2 TRUE 3
5: 2 FALSE 3
6: 2 TRUE 3
7: 2 TRUE 3
8: 2 FALSE 3
如何调整代码以获得所需的输出(删除每个 id 的 NA 并完成标记的组数?)
解决方案
也许在标记列上使用sum :
DT[, num_markers := sum(marker), by = id ][]
# id marker num_markers
# 1: 1 TRUE 1
# 2: 1 FALSE 1
# 3: 1 FALSE 1
# 4: 2 TRUE 3
# 5: 2 FALSE 3
# 6: 2 TRUE 3
# 7: 2 TRUE 3
# 8: 2 FALSE 3
推荐阅读
- swift - 如何限制在 SwiftUI 中可以调整滑块的距离?
- jquery - 如何在 laravel 的 iframe 中显示 pdf 文件?
- python - 如何在 Python 中正确转义 json 字符串中的双引号 (")
- mysql - 如何始终在 Laravel 中首先获取特殊类别项目数据
- python - 使用 Selenium 包获取网站的 IP 地址
- python - 使用python从10到N的步数
- ios - 为什么我的 SwiftUI 动画在旋转时会恢复到前一帧?
- python - pandas 提取模式后的所有字符和数字
- r - 为什么 R 不能识别 cat_plot 命令?
- google-apps-script - 从谷歌表中为自定义函数绘制一个数组,在我可以使用它之前它就变得混乱了