我有一个包含三个不同变量的大型数据集:ID,入学日期,出院日期。
ID Admit_Date Discharge_date
1 2015-1-1 2015-3-9
2 2015-1-9 2015-4-10
2 2015-8-10 2015-11-2
目前,数据集的格式较长,我想将其做成一个宽数据集,每行对应一个ID。由于存在数百个不同的日期,因此我不希望这些值成为列名,因为那样可能会导致数百个列。我希望有多个入场/出场栏,以使其显示为“ admit_date_1”,“ discharge_date_1”,“ admit_date_2”等。
ID Admit_Date_1 Discharge_date_1 Admit_Date_2 Discharge_date_2
1 2015-1-1 2015-3-9 NA NA
2 2015-1-9 2015-4-10 2015-8-10 2015-11-2
我已经尝试在R中使用dcast和melt函数,但无法使其看起来像上面这样。任何帮助或指导表示赞赏! -J
在R语言中,您可以这样做:
reshape(transform(df,time=ave(ID,ID,FUN=seq_along)),dir = "wide",idvar = "ID",sep = "_")
ID Admit_Date_1 Discharge_date_1 Admit_Date_2 Discharge_date_2
1 1 2015-1-1 2015-3-9 <NA> <NA>
2 2 2015-1-9 2015-4-10 2015-8-10 2015-11-2