【发布时间】:2015-11-19 18:52:23
【问题描述】:
我有一个如下所示的数据框:
> df = data.frame(group = c(1,1,1,2,2,2,3,3,3),
date = c(1,2,3,4,5,6,7,8,9),
value = c(3,4,3,4,5,6,6,4,9))
> df
group date value
1 1 1 3
2 1 2 4
3 1 3 3
4 2 4 4
5 2 5 5
6 2 6 6
7 3 7 6
8 3 8 4
9 3 9 9
我想创建一个新列,其中包含与值列中的值“4”相关联的每个组的日期值。
以下数据框显示了我希望完成的工作。
group date value newValue
1 1 1 3 2
2 1 2 4 2
3 1 3 3 2
4 2 4 4 4
5 2 5 5 4
6 2 6 6 4
7 3 7 6 8
8 3 8 4 8
9 3 9 9 8
正如我们所见,组 1 具有 newValue“2”,因为这是与值“4”相关联的日期。同样,第二组有newValue 4,第三组有newValue 8。
我认为使用ave() 或一系列dplyr/data.table 函数有一种简单的方法可以做到这一点,但我的许多尝试都没有成功。
【问题讨论】:
标签: r data-manipulation