0
クラス= c( "POSIXct"、 "POSIXt")に一連の日付が格納されています。これらの日付のいくつかは英国の時計の変更を横断し、連続する日の異なる時間帯をもたらし、日付間の日数を計算する際に問題を引き起こす。 BSTへのGMTから29/3/2015シフトタイムゾーンの時計の変更POSIXct日付のタイムゾーンコンポーネントを変更することはできますか?
"2015-03-29 GMT" "2015-03-30 BST"
は私が日付をめちゃくちゃにすることなく、同じ時間帯に私のすべての日付を強制することはできますか?
すべての日付が同じタイムゾーンにあるときにうまく動作するas.Date()を使用しようとしましたが、日付が時計の変更を超えたときに問題が発生します。ここで
が再現可能な例である(おそらく唯一の英国では?):
df2 <- as.data.frame(
structure(
list(DateOfEntry = structure(c(1426809600, 1426896000,
1426982400, 1427068800,
1427155200, 1427241600,
1427328000, 1427414400,
1427500800, 1427587200,
1427670000, 1427756400),
class = c("POSIXct", "POSIXt"),
tzone = "", label = "Date of entry")),
class = "data.frame", .Names = c("DateOfEntry"),
row.names = c(NA, -12L)))
df2$new_date <- as.Date(df2$DateOfEntry)
これは(29/3/2015上のクロック変化に英国で)私のために、この出力で結果:
DateOfEntry new_date
2015-03-20 2015-03-20
2015-03-21 2015-03-21
2015-03-22 2015-03-22
2015-03-23 2015-03-23
2015-03-24 2015-03-24
2015-03-25 2015-03-25
2015-03-26 2015-03-26
2015-03-27 2015-03-27
2015-03-28 2015-03-28
2015-03-29 2015-03-29
2015-03-30 2015-03-29
2015-03-31 2015-03-30
注29/3/2015の繰り返しとあなたがを試してみましたDateofEntry==2015-03-30
& new_date==2015-03-29
'lubridate'関数を試しましたか? 'with_tz'と' force_tz'はタイムゾーンで動作します。 –
@LourdesHernández完璧 - 答えとして追加してください。私はそれを受け入れます(私は 'lubridate'をロードしていました...) – ChrisP