Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 根据组在数据帧之间复制和相乘值_R_Dplyr - Fatal编程技术网

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

R 根据组在数据帧之间复制和相乘值,r,dplyr,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

我有一个数据帧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解决方案

试试这个:

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

合并和匹配将实现所需的功能TaskOrder在输出中获取值3,而不是在输入中