2017-10-18 6 views
0

私は、x軸に日付時刻がある場所で作業する簡単なxyプロットを取得しようとしています。私はこれにいくつかの投稿の合併を無駄にしようとしました。ここでR ggplot date time issue

はサンプルデータです:

datetime,temp,humidity 
2017-10-15 15:00:00,84.05,36.36 
2017-10-15 16:00:00,84.21,36.21 
2017-10-15 17:00:00,82.74,41.79 

私は、このコードを実行する "ENV"

としてCSVをインポート:

env$'date-time' <- as.POSIXct(env$'date-time',format = "%y%m%d %H:%M:%S") 
library(scales) 
x <-ggplot(env, aes(x='date-time')) + 
    geom_line(aes(y = temp)) + 
    geom_line(aes(y = humidity)) + 
    scale_x_datetime(labels = date_format("%Y-%m-%d %H:%M:%S")) 
x 

これはエラーです: エラー:無効な入力:time_transはPOSIXctクラスのオブジェクトでのみ動作します

str(env) produces this: 
$ date-time: POSIXct, format: "2017-10-15 15:00:00" "2017-10-15 16:00:00" 
"2017-10-15 17:00:00" ... 
$ temp  : num 84 84.2 82.7 83.1 83.2 ... 
$ humidity : num 36.4 36.2 41.8 45.2 46 ... 
+0

あなたのサンプルデータには 'datetime'があり、コードには' date-time'(ハイフン付き)があります。どちらが正しい? – neilfws

+0

はい。私は列の名前で遊んでいたような単純なタイプミス。 " - "を削除すると、名前を引用する必要がなくなります。 – Chuck

答えて

2

この行は間違っている:

env$'date-time' <- as.POSIXct(env$'date-time',format = "%y%m%d %H:%M:%S") 

フォーマットはformat="%Y-%m-%d %H:%M:%S"

それはあなたの問題を修正するかどうかを確認する必要があります。

+0

これは、 'datetime'(質問の例のデータのように)ではなく、' date-time'(質問コードのように)という名前の列の場合に機能します。 – neilfws

+1

@ neilfwsはい、しかし、列の名前が正しく指定されていると仮定すると、指定されたコードの最初の行に指定されている 'format'は間違っています – Mako212

+1

私は知っています。私は変数名のあいまいさを強調していました。 – neilfws