R - 如何根据两列之间的关系重塑数据框?
R - How to reshape a dataframe based on the relationship between two columns?
我有一个数据框,df
:
ICD MRN Adm
X 24 1/01/2015
Y 21 1/22/2015
A 10 2/09/2015
B 10 2/09/2015
C 10 2/09/2015
F 97 4/10/2015
X 97 4/10/2015
Z 33 5/17/2015
我想做的是让每个 MRN 的 ICD 值进入它们自己的列。如果一个 MRN 只有一个与之关联的 ICD 也没关系,但如果有多个值,它们应该进入它们自己的列。
像这样:
MRN ICD.1 ICD.2 ICD.3 Adm
24 X NA NA 1/01/2015
21 Y NA NA 1/22/2015
10 A B C 2/09/2015
97 F X NA 4/10/2015
33 Z NA NA 5/17/2015
我不知道该怎么做!我什至很难问这个问题!我怀疑它需要使用 reshape2
,但我在这方面很薄弱,希望得到社区的一些帮助。
这是一种方法 - 在某处复制...
library(tidyr)
library(dplyr)
df %>%
group_by(MRN) %>%
mutate(ICD_lbl = paste0("ICD.", data.table::rleid(ICD))) %>%
spread(ICD_lbl, ICD)
我有一个数据框,df
:
ICD MRN Adm
X 24 1/01/2015
Y 21 1/22/2015
A 10 2/09/2015
B 10 2/09/2015
C 10 2/09/2015
F 97 4/10/2015
X 97 4/10/2015
Z 33 5/17/2015
我想做的是让每个 MRN 的 ICD 值进入它们自己的列。如果一个 MRN 只有一个与之关联的 ICD 也没关系,但如果有多个值,它们应该进入它们自己的列。
像这样:
MRN ICD.1 ICD.2 ICD.3 Adm
24 X NA NA 1/01/2015
21 Y NA NA 1/22/2015
10 A B C 2/09/2015
97 F X NA 4/10/2015
33 Z NA NA 5/17/2015
我不知道该怎么做!我什至很难问这个问题!我怀疑它需要使用 reshape2
,但我在这方面很薄弱,希望得到社区的一些帮助。
这是一种方法 - 在某处复制...
library(tidyr)
library(dplyr)
df %>%
group_by(MRN) %>%
mutate(ICD_lbl = paste0("ICD.", data.table::rleid(ICD))) %>%
spread(ICD_lbl, ICD)