我想知道一种药物在医院里是怎么开的。在这个虚拟数据库中,我有1000名患者在2017/01/01之后遇到。
计划的目标是看到这种药物的给药模式:它是更频繁/更高剂量,更接近入院、出院时间,还是在患者住院期间。
#Get_random_dates that we will use multiple times
gen_random_dates <- function(N, st, et) {
st <- as.POSIXct(as.Date(st))
et <- as.POSIXct(as.Date(et))
dt <- as.numeric(difftime(et,st,unit="sec"))
ev <- runif(N, 0, dt)
rt <- st + ev
return(rt)
}
#Generate admission and discharge dates
admission <- gen_random_dates(1000, "2017/01/01", "2017/01/10")
discharge <- gen_random_dates(1000, "2017/01/11", "2017/01/20")
patient <- sort(sample(1:1000, 1000))
patient_data <- data.frame(patient_ID = patient, admission_date = admission, discharge_date = discharge)
#Grow the database
patient_data <- patient_data[sort(sample(1000, 100000, replace=TRUE)), ]
#Medication admin date and dose
patient_data$admin_date <- gen_random_dates(100000, patient_data$admission_date, patient_data$discharge_date)
patient_data$admin_dose <- abs(as.integer(rnorm(100000, 50, 100)))我尝试了这个ggplot函数,但它不能帮助我可视化模式。
ggplot(patient_data, aes(x = admin_date, y = admin_dose)) +
xlab("Use of Drug in Patient Encounters") + ylab("Dose (mg)") +
geom_jitter()ggplot

发布于 2017-10-21 19:50:21
如果浏览器是一个可接受的目标,一种选择是尝试ggplotly,它支持平移/缩放,对包含大量数据的时间序列很有帮助。(免责声明,我是一名plotly.js维护者。)除此之外,还有一个regular R API to plotly.js。Plotly的绘图可以可视化很多点或线,这不仅是因为缩放/平移,而且在某些绘图类型中,还可以是WebGL的支持,可以是much faster。
发布于 2017-10-21 22:22:47
我建议使用facet来一次查看几个患者。这对于成千上万的患者来说并不是很好的扩展,但它可以帮助你一次查看10-20个。ggplotly也能很好地处理方面。
ggplot(patient_data, aes(x = admin_date, y = admin_dose)) +
xlab("Use of Drug in Patient Encounters") + ylab("Dose (mg)") +
geom_jitter() +
facet_wrap(~patient)https://stackoverflow.com/questions/46862876
复制相似问题