根据组在数据帧之间复制和乘以值

时间:2018-04-24 15:55:44

标签: r dplyr

我有一个数据帧DF1。 id表示参与者的号码,然后我们对每个参与者的观察(行)很少:

id blocktype condition blocknr markodd
 1         1         1       1       0
 1         3         2       2       0
 1         3         3       2       0
 2         1         2       1       0
 2         1         1       2       0
 2         1         1       2       0
 3         4         1       1       0
 3         1         1       2       0
 3         2         1       2       0

我还有另一个数据框DF2,附加数据,这次是每个人的单行:

 id taskorder exporder
 1         1        1
 2         2        1
 3         1        2

我想从DF2中为每个id获取一个值,并将其复制并乘以相应id的所有观察值,所有这些都在DF1的新列中,以便我得到:

id blocktype condition blocknr markodd taskorder
 1         1         1       1       0       1
 1         3         2       2       0       1
 1         3         3       2       0       1
 2         1         2       1       0       2
 2         1         1       2       0       2
 2         1         1       2       0       2
 3         4         1       1       0       1
 3         1         1       2       0       1
 3         2         1       2       0       1

你能告诉我怎么做吗? dplyr解决方案是最可取的!

1 个答案:

答案 0 :(得分:1)

试试这个:

DF1 <- DF1 %>% left_join(DF2, by="id") %>% dplyr::select(colnames(DF1), taskorder)