我有一个数据框开始:
id treatment
1 B
2 B
3 A
4 A
我的目标是在数据框中添加一列。
新列中的每个条目都应该是“处理”列中“A”值的总数,包括条目行。
例如,新列应该在数据框的第三行显示1(请参见上文),第四行显示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]