【发布时间】:2021-09-23 09:25:48
【问题描述】:
我有一个data frame,每个健康状况都有几个诊断代码(每行一个代码)。我需要为每个条件获取一个vector 的代码,并且向量需要以每个条件命名。
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"))
df <- data.frame(Condition, Code)
df
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
我期望得到什么:
> COPD
[1] "6A61.00" "8BPT.00" "8BPT000" "8BPT100"
> HIV
[1] "E2E0.00" "E2E0100" "E2E0z00"
> Sepsis
[1] "E2E1.00" "E2E2.00" "E2Ey.00" "E2Ez.00" "Eu84400"
但是,我不想为单个代码中的每个条件创建一个vector,如下所示:
COPD <- df$Code[which(df$Condition=="COPD")]
HIV <- df$Code[which(df$Condition=="HIV")]
Sepsis <- df$Code[which(df$Condition=="Sepsis")]
有没有更好的方法来优化一段代码以同时为每个条件获取一个代码向量? (我有大约 300 个条件)。
此外,我不希望向量以 factor 的形式返回,就像它正在发生的那样:
> COPD
[1] 6A61.00 8BPT.00 8BPT000 8BPT100
12 Levels: 6A61.00 8BPT.00 8BPT000 8BPT100 E2E0.00 E2E0100 E2E0z00 E2E1.00 ... Eu84400
> HIV
[1] E2E0.00 E2E0100 E2E0z00
12 Levels: 6A61.00 8BPT.00 8BPT000 8BPT100 E2E0.00 E2E0100 E2E0z00 E2E1.00 ... Eu84400
> Sepsis
[1] E2E1.00 E2E2.00 E2Ey.00 E2Ez.00 Eu84400
12 Levels: 6A61.00 8BPT.00 8BPT000 8BPT100 E2E0.00 E2E0100 E2E0z00 E2E1.00 ... Eu84400
感谢您的帮助。
【问题讨论】: