【问题标题】:Copy and multiply values between data frames according to the group根据组在数据框之间复制和相乘
【发布时间】:2018-04-24 15:55:43
【问题描述】:

我有一个数据框 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 解决方案将是最可取的!

【问题讨论】:

  • 合并匹配就能实现你所需要的
  • taskorder 在您的输出中而不是在您的输入中取值 3

标签: r dplyr


【解决方案1】:

试试这个:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-10
    • 1970-01-01
    相关资源
    最近更新 更多