我是R的新手(上周开始自学)和这个论坛的新人。
我正在研究一个我需要确定事件发生时间的数据集。我有三个变量(药物,患者和日期),我需要计算每个患者换药时的时差。另外值得注意的是,患者可以从药物A转移到药物B并返回药物A,因此日期顺序非常重要。
我目前拥有的数据是一个名为" data"
的数据框data <-data.frame(Drug=sample(c("Drug A","Drug B", "Drug C", "Drug D", "Drug E"),100,
replace=TRUE),PAT=rep(1:10,each=10),Date=sample(seq(as.Date('2003/01/01'),
as.Date('2016/01/01'), by="day"), 100))
data<-data[order(data$PAT,data$Date),]
任何帮助都会很棒,而且我很遗憾我没有明确或偏离此论坛的协议...
所需的输出量是在每个时间点从第一种药物转换到第二种药物(以及第2次到第3次,第3次到第4次,最后是第4次到第5次)的患者比例...... 因此,在时间0(当每个患者的第一个记录存在时),100%的患者没有切换,下一行将是第2天(其中99%的患者可能没有切换),然后是第3天,然后是第4天等。
干杯
答案 0 :(得分:0)
....如果我已正确理解意图,那么'部分deux'的答案。注意我已经将日期的数量从100减少到10,以使序列同时发生。
library(TraMineR)
data <- data.frame(Drug=sample(c("Drug A","Drug B", "Drug C", "Drug D", "Drug E"),100,replace=TRUE),
PAT=rep(1:10,each=10),
Date=sample(seq(as.Date('2003/01/01'),as.Date('2016/01/01'), by="day"), 10))
data <- data[order(data$PAT,data$Date),]
data2 <- reshape(data, idvar="PAT", timevar="Date", direction="wide")
data.seq <- seqdef(data2,2:11)
seqiplot(data.seq)
seqdplot(data.seq)