0

時系列データがあり、次のコードを使用してプロットしたい:

temp  <- read.csv("C:/Thesis/Data_set/grosseroor/25.csv",
                        header = FALSE)

names(temp) <- c("dt","ambtemp")
require(ggplot2)
library(scales)
temp$dt <-strptime(as.character(temp$dt), format = "%Y/%m/%d %H:%M")
ggplot(temp, aes(dt, ambtemp)) + geom_line() +
  scale_x_datetime(breaks = date_breaks("5 hour"),labels=date_format("%H:%M")) +
  xlab("Time 00.00 ~ 24:00 (2007-09-29)") + ylab("Tempreture")

サンプルデータ:

date_time                
    10/20/2007 4:52 -6.14
    10/20/2007 4:54 -6.17
    10/20/2007 4:56 -6.09
    10/20/2007 5:00 -7.2
    10/20/2007 5:02 -6.65
    10/20/2007 5:04 -6.04
    10/20/2007 5:16 -6.26
    10/20/2007 5:20 -6.52
    10/20/2007 5:22 -6.4
    10/20/2007 5:24 -6.92
    10/20/2007 5:26 -7.04
    10/20/2007 5:28 -6.84
    10/20/2007 5:30 -6.16
    10/20/2007 5:32 -7.13
    10/20/2007 5:34 -7.43
    10/20/2007 5:36 -6.84
    10/20/2007 5:38 -7.82
    10/20/2007 5:40 -6.84
    10/20/2007 5:42 -6.84
    10/20/2007 5:44 -7.46
    10/20/2007 5:46 -7.74
    10/20/2007 5:48 -8.04

しかし、行を実行するとtemp$dt <-strptime((temp$dt), format = "%Y/%m/%d %H:%M")、すべての日時列が に変わりましたNA

4

1 に答える 1

1

この問題は、 の間違ったformat文字列が原因strptimeです。を指定%m/%d/%Yしましたが、データの形式が異なります: 月/日/年。したがって、コマンドを次のように変更する必要があります。

temp$dt <-strptime(as.character(temp$dt), format = "%m/%d/%Y %H:%M")

ご覧のとおり、日付要素の順序は、年 - 月 - 日: のように自動的に表示されます2007-10-20

列には別の問題がありますambtemp。あなたのコメントでわかるように、それは要因です。数値である必要があると思います。次のコマンドで変換できます。

temp$ambtemp <- as.numeric(as.character(temp$ambtemp ))

これで、データをプロットできます (次のコマンドは変更していません)。

require(ggplot2)
library(scales)

ggplot(temp, aes(dt, ambtemp)) + geom_line() +
  scale_x_datetime(breaks = date_breaks("5 hour"),labels=date_format("%H:%M")) + 
  xlab("Time 00.00 ~ 24:00 (2007-09-29)") + 
  ylab("Tempreture")

ここに画像の説明を入力

于 2013-01-29T07:33:14.117 に答える