用于存储运行计数结果的新列

时间:2014-08-03 18:54:49

标签: r

我有一个数据框开始:

id treatment
1  B
2  B
3  A
4  A

我的目标是在数据框中添加一列。

新列中的每个条目都应该是“处理”列中“A”值的总数,包括条目行。

例如,新列应该在数据框的第三行显示1(请参见上文),第四行显示2(请参见上文)。

2 个答案:

答案 0 :(得分:2)

可以使用cumsum功能处理运行计数:

dat <- data.frame(id=1:4, treatment=c("B", "B", "A", "A"))
cumsum(dat$treatment == "A")
# [1] 0 0 1 2

这是取TRUE / FALSE值的累积和,它们分别转换为值1和0。

答案 1 :(得分:1)

要完成josilber的回答,说你想知道包含行myRow的As的数量,只需调用:cumsum(dat$treatment == "A")[myRow]