2017-06-02 18 views
-2

1つのグラフに3つの値を入れたいと思います。私は日付複数の行をタイムスタンプ付きの1つのグラフに表示

MyData$Timestamp <- as.Date(MyData$Timestamp) 

にタイムスタンプを変換するが、私は私のグラフにも時間を持ちたい場合はこれまでのところ、私は3行を持つことができます。私のサンプルデータに続いて

  Timestamp Systolic.pressure Diastolic.pressure Pulse 
1 2017-06-01 23:35:31    125     80 70 
2 2017-06-02 23:35:43    130     90 89 
3 2017-06-02 23:35:43    135     93 96 
4 2017-06-03 23:35:56    140     90 98 

タイムスタンプの日付と時刻を変換する方法はありますか?

+0

'?as.POSIXct'が役立つかもしれません – thelatemail

答えて

1

lubridateを使用すると、タイムスタンプを日付/時刻に変換できます。また、データフレームをワイドロングフォーマットから変換する必要があります.1つは変数名用、もう1つは値用です。 tidyr::gatherそれを行うことができます。

血圧測定と脈拍測定の単位が異なるため、すべての変数を1つのプロットに配置しません。デュアルy軸は可能ですが、推奨できません。

あなたの例のように、同時に異なる値が存在する可能性もありますか?私はこれがデータの性質を考えているとは思えません。

ファセットを使用して解決策を1つ考えます。このプロットのサンプルデータから3行目を削除しました。

library(dplyr) 
library(tidyr) 
library(ggplot2) 
library(lubridate) 

MyData %>% 
    mutate(ts = ymd_hms(Timestamp)) %>% 
    # next line just drops row 3 
    slice(c(1:2, 4)) %>% 
    gather(var, val, -Timestamp, -ts) %>% 
    # reorder the variables for facets 
    mutate(var = factor(var, levels = c("Systolic.pressure", "Diastolic.pressure", "Pulse"))) %>% 
    ggplot(aes(ts, val)) + 
    geom_line() + 
    facet_grid(var ~ ., scales = "free") + 
    labs(x = "timestamp", y = "value") + 
    theme_light() 

enter image description here

関連する問題