2017-10-21 10 views
1

私は病院でどのように1つの薬剤が処方されているかをプロットしようとしています。このダミーのデータベースには、2017/01/01の後に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関数を試しましたが、パターンを視覚化するのに役立たなかった。

ggplot(patient_data, aes(x = admin_date, y = admin_dose)) + 
    xlab("Use of Drug in Patient Encounters") + ylab("Dose (mg)") + 
    geom_jitter() 

ggplot

+0

研究の質問を指定すると、はるかに良いかもしれません。特に大きいデータの場合、全体の画像を示すプロットを提供することは困難です。しかし、視覚化の目的がより正確な場合には、ほとんどの場合解決が可能です。 – rnso

答えて

1

ブラウザが許容対象である場合は、1つの選択肢は、多くのデータと時系列で役立つ、パン/ズームを可能にするggplotlyを試してみることです。 (免責事項、私はplotly.jsメンテナーです。)この他にも、regular R API to plotly.jsがあります。 Plotlyには、ズーム/パンだけでなく、一部のプロットタイプでは、WebGLのバッキング(much faster)を使用して、多くの点や線を視覚化できるプロットがあります。

0

ファセットを使用して一度に一度に数人の患者を見ることをお勧めします。これは何千人もの患者にとってうまくスケールされませんが、一度に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) 
関連する問題