感谢大家提供关于使用 R 处理入院数据的问题的建议,我对这个问题还有一个问题,实际上应该是那个问题之前的任务。
现在我有一个这样的数据集:
Patient_ID Date Ward
P001 1 A
P001 2 A
P001 3 A
P001 4 A
P001 4 B
P001 5 B
P001 6 B
P001 7 B
P001 7 C
P001 8 B
P001 9 B
P001 10 B
我需要将其转换为:
Patient_ID Date Ward
P001 1 A
P001 2 A
P001 3 A
P001 4 A;B
P001 5 B
P001 6 B
P001 7 B;C
P001 8 B
P001 9 B
P001 10 B
目前我已经使用 转换它ddply
,代码附在下面:
data <- ddply(data,
c("Patient_ID", "Date"),
function(df)
{data.frame(Ward=paste(unique(df[,"Ward"]),collapse=";"))
},
.progress="text"
)
unique(Patients_ID)
这可以解决我的问题,但是当数据集具有 8818和 1861时,它非常慢(在 P4 3.2 机器上超过 20 分钟)unique(Date)
。我该如何改进呢?谢谢!