I have a data frame that looks like this:
> 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
I want to create a new column that contains a date value for each group that is associated with the value "4" from the value column.
The next data frame shows what I hope to accomplish.
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
As we can see, group 1 has newValue "2" because it is the date associated with the value "4". Similarly, the second group has newValue 4, and in the third group has newValue 8.
I assume there is an easy way to do this with ave () or a series of dplyr / data.table functions, but I have not been successful in my many attempts.