R 如何绘制大的时间序列(一种药物的数千次给药/剂量)?

R 如何绘制大的时间序列(一种药物的数千次给药/剂量)?,r,time-series,large-data,medical,R,Time Series,Large Data,Medical,我正试图描绘出医院是如何开出一种药物的。在这个虚拟数据库中,我在2017年1月1日之后遇到了1000名患者 标绘的目的是观察该药的给药模式:在入院、出院或患者逗留期间更频繁地给予更高剂量的药物。 #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.D

我正试图描绘出医院是如何开出一种药物的。在这个虚拟数据库中,我在2017年1月1日之后遇到了1000名患者

标绘的目的是观察该药的给药模式:在入院、出院或患者逗留期间更频繁地给予更高剂量的药物。
#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


如果浏览器是可接受的目标,一个选项是尝试启用平移/缩放,这对包含大量数据的时间序列很有帮助。(免责声明,我是
plotly.js
维护者。)除此之外,还有一个。Plotly具有可以可视化许多点或线的绘图,这不仅是因为缩放/平移,而且在某些绘图类型中,还因为WebGL的支持,这可以是。我建议使用面来同时查看少数患者。这对于成千上万的患者来说并不适用,但它可以帮助你一次看10-20个
ggplotly
也可以很好地处理facet

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)

如果你指定你的研究问题,可能会更好。很难提供一个显示整个画面的绘图,尤其是在大数据的情况下。然而,当可视化的目的更加精确时,解决方案是最有可能的。
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)