« [R]write_csv関数で出力される日付時刻型ベクトルについて | トップページ | [R]日付時刻型ベクトルの日付時刻を指定のタイムゾーンの日付時刻に変更する »

2024年12月20日 (金)

[R]read_csv関数で読み込まれる日付時刻型ベクトルについて

CSVファイルにタイムゾーンも明記されている場合は、そのタイムゾーンの日付時刻として読み取るが、ベクトルにはUTCに変換して保存される。

タイムゾーンが明記されていない日付時刻は強制的にUTCであるとして読み込み、保存されてしまう。読み込み後にJSTにする場合は、force_tz関数でタイムゾーンだけをJSTに変える必要がある。

> library(tidyverse)
> options(readr.show_progress = FALSE, readr.show_col_types = FALSE)
> Sys.timezone()
[1] "Asia/Tokyo"
> s <- "2001-02-03T04:05:06+09:00"
> dtf <- data.frame(dttm = s)
> write_csv(dtf, file = "temp.csv")
> cat(read_file("temp.csv"))
dttm
2001-02-03T04:05:06+09:00
> tib <- read_csv("temp.csv")
> print(tib$dttm)
[1] "2001-02-02 19:05:06 UTC"
> s <- "2001-02-03T04:05:06"
> dtf <- data.frame(dttm = s)
> write_csv(dtf, file = "temp.csv")
> cat(read_file("temp.csv"))
dttm
2001-02-03T04:05:06
> tib <- read_csv("temp.csv")
> print(tib$dttm)
[1] "2001-02-03 04:05:06 UTC"
> tib <- tib |> mutate(dttm = force_tz(dttm, tzone = Sys.timezone()))
> print(tib$dttm)
[1] "2001-02-03 04:05:06 JST"

« [R]write_csv関数で出力される日付時刻型ベクトルについて | トップページ | [R]日付時刻型ベクトルの日付時刻を指定のタイムゾーンの日付時刻に変更する »

R(tidyverse)」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

« [R]write_csv関数で出力される日付時刻型ベクトルについて | トップページ | [R]日付時刻型ベクトルの日付時刻を指定のタイムゾーンの日付時刻に変更する »

無料ブログはココログ

■■

■■■