[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]2つの列による重複を調べてその重複の数を表示する(2025.12.24)
- [R]tibbleから指定した一列を取り出してベクトルにする(2025.10.19)
- [R]tibbleを指定した列だけのtibbleに変換する(2025.10.14)
- [R]tibbleを指定した行だけのtibbleに変換する(2025.10.13)
- [R]tibbleの列名を得る(2025.07.17)
« [R]write_csv関数で出力される日付時刻型ベクトルについて | トップページ | [R]日付時刻型ベクトルの日付時刻を指定のタイムゾーンの日付時刻に変更する »

コメント