r - 如何使用 r 中的 if 条件生成 var 以捕获计数总数
问题描述
我有一个数据集如下所示:
library(data.table)
dt <- data.table(id = c("A", "A", "A", "B", "B", "B", "C", "C", "C"), Complete = c("Yes","No","Yes","Yes","No","Yes","Yes","Yes","Yes"))
> dt
id Complete
1: A Yes
2: A No
3: A Yes
4: B Yes
5: B No
6: B Yes
7: C Yes
8: C Yes
9: C Yes
我想构建 var N_complete 以complete=="Yes"
按 ID 捕获总数,最终数据应如下所示。我应该怎么做才能达到这样的结果?
我试过了
dt$N_complete <- unlist(lapply(split(dt,dt$ID), function(x) rep(summarize(n(x)[x$Complete=="Yes"],na.rm=T),nrow(x))))
对不起,混乱。我是初学者,我的代码错误可能看起来很傻。
解决方案
由于您正在使用data.table
,您可以使用以下方法轻松地按组计算完整案例(“是”条目的数量):
dt[, N_complete := sum(Complete == "Yes", na.rm = TRUE), by = .(id)]
推荐阅读
- c# - 团结 - 当他们接近一个时让角色在平台上跳跃?
- c - 在每个 C 主函数的开头添加几行
- c - 将所有变量声明为指针与在 C 中使用地址运算符
- css - 带有 flexbox 的 Safari 上按钮的子元素未正确居中
- bash - 使用 UNIX 工具将带有注释的键值文件转换为 JSON 文档
- php - 带有 axios 和 vue 的 laravel 5.8 中的 CSRF
- css-tables - 我可以在事先不知道图像宽度的情况下使用 CSS 表格将图像和文本并排放置吗?
- python - Python:如何枚举列表列表并使用该列表的长度来查找值
- python - 为 pd 数据框合并 json 文件的最佳方法
- html - 列表中的 CSS last-child,每个标签周围都有标签