我正在尝试重新编号人群。
在数据中,“FamID”表示一个家庭,“PtID”表示与该家庭相关的个体患者。“双胞胎”列表示患者是同卵双胞胎(编码为 1)、异卵双胞胎(编码为 2)还是非双胞胎(编码为 0)。
FamID PtID Twin
F1 F11 1
F1 F12 1
F2 F21 2
F2 F22 2
F3 F31 1
F3 F32 1
F4 F41 2
F5 F51 1
F5 F52 1
F5 F53 0
F6 F61 1
F6 F62 1
F7 F71 2
F7 F72 2
例如,“FamID”F1 有两个家庭成员,PtID F11 和 F12,他们是同卵双胞胎 (Twin = 1)。
我想创建一个具有基于 Twin 列和 FamID 列的编码的列 (NewCol)。
Twin 列中的第一组同卵双胞胎(编码为 1)在新列中将有 1,来自不同家庭的第二组同卵双胞胎将是 3,其中下一组同卵双胞胎将是下一个奇数号等。
对于异卵双胞胎(编码为 2s),它们的偶数会逐渐增加,第一个异卵双胞胎家族从 2 开始并上升。
任何非双胞胎(编码为 0),它们将保持为 0。
期望的输出:
FamID PtID Twin NewCol
F1 F11 1 1
F1 F12 1 1
F2 F21 2 2
F2 F22 2 2
F3 F31 1 3
F3 F32 1 3
F4 F41 2 4
F5 F51 1 5
F5 F52 1 5
F5 F53 0 0
F6 F61 1 7
F6 F62 1 7
F7 F71 2 6
F7 F72 2 6
数据
FamID <- c(rep("F1", 2), rep("F2", 2), rep("F3", 2), "F4", rep("F5", 3), rep("F6", 2), rep("F7", 2))
PtID <- c("F11", "F12", "F21", "F22", "F31", "F32", "F41", "F51", "F52", "F53", "F61", "F62", "F71", "F72")
Twin <- c(1, 1, 2, 2, 1, 1, 2, 1, 1, 0, 1, 1, 2, 2)
sample <- data.frame(FamID, PtID, Twin)