【发布时间】:2021-09-23 13:00:41
【问题描述】:
我有一个数据框 dfA 有大约 300 个条件,每个条件都有很多行,其中包含与之关联的诊断代码。
Condition <- as.character(c("COPD", "COPD", "COPD", "COPD", "HIV", "HIV", "HIV", "Sepsis", "Sepsis", "Sepsis", "Sepsis", "Sepsis"))
Code <- as.character(c("6A61.00", "8BPT.00", "8BPT000", "8BPT100", "E2E0.00", "E2E0100", "E2E0z00", "E2E1.00", "E2E2.00", "E2Ey.00", "E2Ez.00", "Eu84400"))
dfA <- data.frame(Condition, Code)
dfA
Condition Code
1 COPD 6A61.00
2 COPD 8BPT.00
3 COPD 8BPT000
4 COPD 8BPT100
5 HIV E2E0.00
6 HIV E2E0100
7 HIV E2E0z00
8 Sepsis E2E1.00
9 Sepsis E2E2.00
10 Sepsis E2Ey.00
11 Sepsis E2Ez.00
12 Sepsis Eu84400
我还有一个数据框dfB,每行有几个健康事件。这些事件用诊断代码标识。
Event <- as.double(1:12)
Code2 <- as.character(c("6A61.00", "Eu90z00", "8BPT000", "8BPT100", "Eu90111", "E2E0100", "E2E0z00", "E2E1.00", "E2E2.00", "Eu90z11", "Eu90z12", "Eu9y700"))
dfB <- data.frame(Event, Code2)
dfB
Event Code2
1 1 6A61.00
2 2 Eu90z00
3 3 8BPT000
4 4 8BPT100
5 5 Eu90111
6 6 E2E0100
7 7 E2E0z00
8 8 E2E1.00
9 9 E2E2.00
10 10 Eu90z11
11 11 Eu90z12
12 12 Eu9y700
我想在dfB 中创建一个column,以dfA 中的每个唯一条件 命名(请注意,dfA 对于每个唯一条件都有多行),用于标识存在每个Condition 至少存在一个诊断代码。这个想法是 - 如果dfB 中的一行包含Condition HIV 中存在的诊断代码,那么dfB 中的column HIV 将收到值1,否则,@ 987654337@。例如:
dfB$"COPD" <- 0
dfB$"COPD"[which(dfB$Code2 %in% (dfA$Code[which(dfA$Condition== "COPD")]))] <- 1
dfB$"HIV" <- 0
dfB$"HIV"[which(dfB$Code2 %in% (dfA$Code[which(dfA$Condition== "HIV")]))] <- 1
dfB$"Sepsis" <- 0
dfB$"Sepsis"[which(dfB$Code2 %in% (dfA$Code[which(dfA$Condition== "Sepsis")]))] <- 1
dfB
Event Code2 COPD HIV Sepsis
1 1 6A61.00 1 0 0
2 2 Eu90z00 0 0 0
3 3 8BPT000 1 0 0
4 4 8BPT100 1 0 0
5 5 Eu90111 0 0 0
6 6 E2E0100 0 1 0
7 7 E2E0z00 0 1 0
8 8 E2E1.00 0 0 1
9 9 E2E2.00 0 0 1
10 10 Eu90z11 0 0 0
11 11 Eu90z12 0 0 0
12 12 Eu9y700 0 0 0
我希望在dfB 中为dfA 中存在的每个唯一Condition 创建一个column。但是,我不想为每个条件单独创建一个column,因为我有 300 个条件。有没有更好的方法来优化一段代码以在我的dfB 中为来自dfA 的每个唯一Condition 一次创建300 个columns? columns 需要以Conditions 命名。
非常感谢您的帮助!
【问题讨论】:
-
我怎么强调都不为过,我强烈建议您不要在全局环境中浮动太多变量。我建议你先把这些向量放在一个列表或数据框中。
-
从我的回答中可以看出,
codes的列表可能比这里的 data.frames 更容易处理。
标签: r function variables vector