【发布时间】:2018-07-03 21:05:47
【问题描述】:
第一次在这里提问:
我有代表事件的日期和人员数据。我想找到一种方法来计算一个人以前参与的次数。所以我想要看起来像这样的数据:
df <- data.frame(date = seq(ymd('2018-01-01'),ymd('2018-01-10'), by = '1 day'),
id = c(1, 2, 3, 4, 3, 5, 2, 2, 1, 4),
# how many previous times has this id been seen?
count_before = c(0, 0, 0, 0, 1, 0, 2, 1, 1, 1))
df
date person_id count_before
1 2018-01-01 1. 0.
2 2018-01-02 2. 0.
3 2018-01-03 3. 0.
4 2018-01-04 4. 0.
5 2018-01-05 3. 1.
6 2018-01-06 5. 0.
7 2018-01-07 2. 1.
8 2018-01-08 2. 2.
9 2018-01-09 1. 1.
10 2018-01-10 4. 1.
我没有在 R 中按行工作的经验(sapply 可能是答案?)但是使用 dplyr summarise 和 group_by 思考这个问题到目前为止都失败了。
编辑:修复了预期输出的不一致问题。
【问题讨论】:
-
这似乎不一致。
2.出现在第 2 行(计数 0)、第 7 行(计数 2)和第 8 行(计数 1)中。这可能是一个错字,但当“预期输出”与描述不一致时,很难回答问题。 -
对不起!尽管有错误,快乐的人还是能弄清楚。
-
nstets,是否有任何答案提供合适的解决方案?如果是这样,请"accept" the answer。 (如果不止一个是好的,尽管您最多可以接受一个,但您可以“投票”尽可能多的人认为有帮助。)