【发布时间】:2021-04-28 13:11:38
【问题描述】:
我有一个数据框,其中每一行都是 1 或 0,列代表主题。现在我需要根据以下规则将另一个数据帧中的值分配给这个数据帧。
- 按主题分配值。
- 将第二个数据帧的第一行值分配给第一个数据帧。
- 重复相同的值,直到第一个数据帧的值为 1。
- 当第一个数据帧的值为 1 时,从第二个数据帧分配下一个值。
抱歉,我知道这可能不清楚。请让我举个例子。
- 这是第一个数据框的样子
- 这是第二个数据框的样子
- 预期结果
所以分配给数据框1的编号只有在遇到1时才会改变,如果是0则与前一个编号相同。
数据样本
数据框 1
structure(list(subject = c("subject1", "subject2"), `1` = c(0L,
0L), `2` = 0:1, `3` = c(0L, 0L), `4` = c(0L, 0L), `5` = c(0L,
0L), `6` = c(0L, 0L), `7` = c(0L, 0L), `8` = c(0L, 0L), `9` = c(0L,
0L), `10` = c(0L, 0L), `11` = 1:0, `12` = c(0L, 0L), `13` = 0:1,
`14` = c(0L, 0L)), row.names = c(NA, -2L), class = c("data.table",
"data.frame"), .internal.selfref = <pointer: 0x0000023598771ef0>)
数据框 2
structure(c(0.338941353970391, 0.276963745357618, 0.271926533090457,
0.407888635431584, 0.223490014452546, 0.313882923412051), .Dim = 2:3)
【问题讨论】: