0

ここで行われたように、カスタム x 軸ラベルを作成したいと思います: http://blog.earlh.com/index.php/2009/07/plotting-with-custom-x-axis-labels-in- r-part-5-in-a-series/

しかし、x 軸のラベルを次のように設定しようとすると:

at <- format(SubDateTime$DateTime, "%H") %in% c("00", "06", "12", "18")
axis(side = 1,at = SubDateTime$DateTime[at],
      labels = format(SubDateTime$DateTime[at], "%a-%H"))

次のエラーが表示されます。

Error in axis(side = 1, at = SubDateTime$DateTime[at], 
              labels = format(SubDateTime$DateTime[at],  
           : (list) object cannot be coerced to type 'double'

SubDateTime$DateTime は、2 つの日付 (2013-06-01 と 2013-06-02) と毎時時刻を持つ POSIXlt クラスです。x軸に「Sun-00」「Sun-06」「Sun-12」などを追加したい。

私を混乱させるのは、上記のリンクの例を実行するとうまくいくことです。

どうも

編集:

 plot(x = SubDateTime$DateTime,
 y = SubConsumption$Load.MW,
 type = "l",
 lwd = 2,
 ylim = c(0, max(SubConsumption$Load.MW, na.rm = FALSE)*1.2),
 main = "Spot Price June 01 to June 02",
 xlab = "",
 ylab = "",
 bty = "l",
 xaxt = "n")

SubDateTime$DateTime についてどのような情報が必要ですか?

4

1 に答える 1

0

それは正しいように見えます (POSIXct ベクトルに適用された場合)。コメントで述べたように、POSIXlt 形式の列は実際にはリストであり、操作を試みると奇妙なエラー レポートが表示されます。これを試して:

dtime <- as.POSICct(SubDateTime$DateTime)
at <- format(SubDateTime$DateTime, "%H") %in% c("00", "06", "12", "18")
axis(side = 1,at = SubDateTime$DateTime[at],
      labels = format(SubDateTime$DateTime[at], "%a-%H"))

対比:

dtime <- seq(as.POSIXct("2013-06-01 00:00:00") ,  
             as.POSIXct("2013-06-02 00:00:00"), by="5 min")

dtime.lt <- as.POSIXlt(dtime)
at <- format(dtime.lt, "%H") %in% c("00", "06", "12", "18")
axis(side = 1,at = dtime.lt[at],
       labels = format(dtime.lt[at], "%a-%H"))
Error in axis(side = 1, at = dtime.lt[at], labels = format(dtime.lt[at],  : 
  (list) object cannot be coerced to type 'double'
于 2013-06-30T00:19:24.907 に答える