根据另一个df

时间:2017-02-17 21:33:16

标签: r

我有两个独立的数据框如下:

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

df2:
  value_a value_b
1       1      34
2       2      85
3       3       8
4       4      92

我需要将df2$value_b添加到df1,其频率与df1$value_a相同,到目前为止,我只是通过填写单个值来实现此目的:

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

...它提供了所需的输出:

   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

使用更大更复杂的数据执行此操作的更有效方法是什么?

示例数据:

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))

0 个答案:

没有答案