重塑具有不同诊断数量的患者数据集

简·布雷德克

我是一个初学者,面临着一项艰巨的任务,而我使用搜索功能发现的所有典型的从长到宽的重塑工具并没有真正为我完成这项工作。如果有人可以帮助我,我会很高兴。

我尝试实现以下目标:

我有一个患者数据,其中每个患者都有唯一的患者编号,但是多次住院会导致每人出现多个病例。我想处理这些情况。问题是,我有每种情况的所有诊断,但不是每个人都有相同的诊断次数,而且我不知道如何在每次已有诊断后告诉R创建新的诊断(和诊断日期)变量。非常感谢您的帮助!

所以,我有一个庞大的数据集,看起来像这样:

        Patient Case Diagnosis DateOfDiagnosis
1      John Doe    1         A      2010-10-10
2      John Doe    1         B      2010-10-10
3      John Doe    1         C      2010-10-10
4 Peter Griffin    2         D      2010-10-11
5 Peter Griffin    2         E      2010-10-11
6 Homer Simpson    3         F      2010-10-12
7 Homer Simpson    4         G      2010-10-13

我需要逐个案例,并且需要所有诊断信息和它们在单独变量中的日期。这没有问题,但是病例或诊断没有模式,因此一些患者只有一个病例,其他5个,而某些病例有1个,另外5个具有相应日期的诊断。所以我需要的是这样的:

        Patient Case Diag1 DateOfDiag1 Diag2 DateOfDiag2 Diag3 DateOfDiag3 ....
1      John Doe    1   A   2010-10-10    B   2010-10-10    C   2010-10-10
2      Peter Grif  2   D   2010-10-11    E   2010-10-11    NA        NA 
3      Homer Simp  3   F   2010-10-12    NA     NA         NA        NA
4      Homer Simp  4   G   2010-10-13    NA     NA         NA        NA

我的示例代码是:

Patient <- c('John Doe','John Doe','John Doe', 'Peter Griffin','Peter Griffin', 'Homer Simpson', 'Homer Simpson')
Case <- c(1,1,1,2,2,3,4)
Diagnosis <- c('A','B','C','D','E','F','G')
DateOfDiagnosis <- as.Date(c('2010-10-10','2010-10-10','2010-10-10','2010-10-11','2010-10-11','2010-10-12','2010-10-13')) 


df<-data.frame(Patient, Case, Diagnosis, DateOfDiagnosis)

非常感谢您的帮助!亲切的问候,扬

罗纳克·沙

pivot_wider创建唯一列后,可以使用

library(dplyr)
library(tidyr)

df %>%
  group_by(Patient, Case) %>%
  mutate(row = row_number()) %>%
  pivot_wider(values_from =  c(Diagnosis, DateOfDiagnosis), names_from = row)

#   Patient        Case Diagnosis_1 Diagnosis_2 Diagnosis_3 DateOfDiagnosis_1 DateOfDiagnosis_2 DateOfDiagnosis_3
#  <fct>         <dbl> <fct>       <fct>       <fct>       <date>            <date>            <date>           
#1 John Doe          1 A           B           C           2010-10-10        2010-10-10        2010-10-10       
#2 Peter Griffin     2 D           E           NA          2010-10-11        2010-10-11        NA               
#3 Homer Simpson     3 F           NA          NA          2010-10-12        NA                NA               
#4 Homer Simpson     4 G           NA          NA          2010-10-13        NA                NA     

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

隔离有2个诊断但诊断数据不同的患者

Tensorflow:在具有不同类别数量的新数据集上进行Finetune预训练模型

每个“数据”具有不同数量信息的MySQL表

列具有不同数量的值的数据框

如何比较具有不同数量值的数据

读取列之间具有不同数量空格的数据框

大熊猫重塑具有不同长度行的数据框

重塑具有多个ID的数据框

具有不同数据集的AttributeError的Tensorflow宽和深模型

连接具有不同类的两个数据集

ggVis:在不同数据集上创建具有多层的图

绑定2个具有不同行数的数据集

具有不同数据集的多个邮递员请求

根据具有不同列名的数据集联接表

将具有不同维度的xarray数据集相乘

合并具有不同行数的数据集

T-SQL - 选择重新入院(在一段时间内)具有相同诊断的患者

R重塑数据集

如何汇总返回不同数量返回值的具有不同功能的分组数据?

Oracle SQL按多维数据集按具有不同ID的多维数据集

如何同时保存具有不同数据数量的多个数据?

如何重塑具有不同尺寸的3D阵列?

连接数据集,该数据集具有分配给表键的几行-如何防止数量重复?

数量重新分配逻辑-具有外部数据集的MapGroups

MNIST数据集输入数组应与目标数组具有相同数量的样本

提取具有不同数量参数的实体

具有不同数量值的嵌套 foreach()

具有不同数量的For循环的函数(python)

具有不同数量参数的Haskell函数