2016-03-25 60 views
11

yılında as.POSIXct zaman dilimi ve scale_x_datetime sorunları ben scale_x_datetime uygulandığında saat kene kaymıştır neden anlamaya çalışırken biraz zaman geçirdim. Tarih/Saat sütunu oluşturulduğunda saat dilimini vermeye çalıştım. Paket ölçeklerinden ggplot ve scale_x_datetime() kullandım. saat kene datapoint onların Tarih/Saat sütununda zaman eşleşmedi hangi yanılmışız. İşte R: Benim veri kümesi

benim veri kümesi ile başa çıkmak için bazı prosedürler olduğunu.

DF$DateTime<-as.POSIXct(DF$timestamp,format="%m/%d/%y %H:%M", tz="America/Toronto") 
    DF$Date<-as.Date(DF$DateTime) 

    lims <- as.POSIXct(strptime(c("2015-07-21 00:00","2015-07-23 00:00"), format = "%Y-%m-%d %H:%M"), tz="America/Toronto")  

    ggplot(DF) + geom_line(aes(x=DateTime, y=-Diff,group=Date)) + scale_x_datetime(limits =lims, breaks=date_breaks("2 hour"), labels=date_format("%m/%d %H:%M")) 

Burada bir şey özlüyor muyum? Lütfen anlamaya yardım et. Çok teşekkürler!

cevap

11

date_format() işlevi, "UTC" olarak ayarlanmış olan tz bağımsız değişkenini alır. Bu nedenle, etiketleriniz UTC'ye dönüştürülür. Saat dilimini "Amerika/Toronto" kullanmak için, aşağıdakileri yapabilirsiniz:

scale_x_datetime(limits = lims, breaks = date_breaks("2 hour"), 
    labels = date_format("%m/%d %H:%M", tz = "America/Toronto")) 

Bu argüman sürümü 0.2.5 ile tanıtıldı. UTC dışındaki zaman dilimleri içinde araziler yaratmak için date_format() kullandığı kod güncellemeden sonra değiştirilmelidir.

+2

ben data_format içinde tz belirtmeniz gerekir. Gönderinizde bir tür var. Bu böyle olmalı: etiketler = DATE_FORMAT ("% m /% d% H:% M", tz = "Amerika/Toronto") Kuo-HsienChang @ –

+0

Haklısınız ben hata düzeltildi. Bunun için üzgünüm! – Stibu