I have two separate data frames as follows:
df1:
value_a frequency
1 1 5
2 1 5
3 1 5
4 1 5
5 1 5
6 2 4
7 2 4
8 2 4
9 2 4
10 3 2
11 3 2
12 4 3
13 4 3
14 4 3
and
df2:
value_a value_b
1 1 34
2 2 85
3 3 8
4 4 92
I need to add df2$value_b
to df1
with the same frequency as df1$value_a
, and so far I've only managed to do this by filling individual values:
df1$value_b[df1$value_a == 1] <- 34
df1$value_b[df1$value_a == 2] <- 85
df1$value_b[df1$value_a == 3] <- 8
df1$value_b[df1$value_a == 4] <- 92
...which gives the desired output of:
value_a frequency value_b
1 1 5 34
2 1 5 34
3 1 5 34
4 1 5 34
5 1 5 34
6 2 4 85
7 2 4 85
8 2 4 85
9 2 4 85
10 3 2 8
11 3 2 8
12 4 3 92
13 4 3 92
14 4 3 92
What is a more efficient way to do this with much larger and more complex data?
Example data:
df1 <- data.frame("value_a" = c(1,1,1,1,1,2,2,2,2,3,3,4,4,4), "frequency" = c(5,5,5,5,5,4,4,4,4,2,2,3,3,3))
df2 <- data.frame("value_a" = c(1,2,3,4), "value_b" = c(34,85,8,92))