首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从长到宽重塑具有不同诊断数量的患者数据集

从长到宽重塑具有不同诊断数量的患者数据集
EN

Stack Overflow用户
提问于 2019-12-14 09:51:57
回答 1查看 60关注 0票数 1

我是一个初学者,面临着一项艰巨的任务,所有我发现使用搜索功能的典型的长到宽的整形工具都没有真正为我做好这项工作。如果有人能帮我,我会很高兴的。

我努力做到以下几点:

我有病人资料,每个病人都有一个独特的病人数目,但多次住院会导致每个人多个病例。我想处理这些案子。问题是,我有每个病例的所有诊断,但并不是每个人都有相同的诊断数,而且我不知道如何告诉R创建一个新的诊断变量(和诊断日期)。每一个帮助都是非常感谢的!

所以,我有一个很大的数据集,大致是这样的:

代码语言:javascript
复制
        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例有相应的诊断日期。所以我需要的是这样的:

代码语言:javascript
复制
        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

我的例子的代码是:

代码语言:javascript
复制
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)

每一个帮助都是非常感谢的!亲切的问候,简

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-14 09:58:38

在创建了唯一的列之后,您可以使用pivot_wider

代码语言:javascript
复制
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     
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59334007

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档