1. ホーム
  2. r

[解決済み] r データフレームで日付時刻のフォーマット「%Y-%m-%d %H:%M:%S 」を「%Y-%m-%d %H:%M:%S.sss 」に変換するには? 分数のある秒数

2022-02-08 17:03:31

質問内容

日付と時刻のフォーマットの変換に苦労しています "%Y-%m-%d %H:%M:%S""%Y-%m-%d %H:%M:%S.sss" をR data.frame ? なお、秒は小数で欲しい。

どのように解決するのですか?

何をおっしゃりたいのかよくわからないのですが。秒の端数は、例えば次のように書けばよいでしょう。 "%OS3" .

から ?strptime

Rに特有なのは'%OSn'で、これは出力に秒を表示します。 0 <= n <= 6'の小数点以下の桁数で切り捨て('%OS'がない場合は の設定を使用します。 getOption("digits.secs")' か、それが設定されていない場合は 'n = 0' となります)。 さらに、'strptime' では、'%OS' を指定すると、秒を含めて入力します。 端数の秒数 ただし,'%S'は端数部分を読み込まない。 を出力します。

ss <- "2018-08-22 21:30:00.5"
format(as.POSIXct(ss, format = "%Y-%m-%d %H:%M:%OS"), format = "%Y-%m-%d %H:%M:%OS3")
#[1] "2018-08-22 21:30:00.500"

また、サンプルとして data.frame

df <- data.frame(
    date = c("2018-08-22 21:30:00", "2018-08-22 22:00:00", "2018-08-22 22:30:00"))
transform(df, new.date = format(
    as.POSIXct(date, format = "%Y-%m-%d %H:%M:%OS"), 
    format = "%Y-%m-%d %H:%M:%OS3"))
#    date                new.date
#1 2018-08-22 21:30:00 2018-08-22 21:30:00.000
#2 2018-08-22 22:00:00 2018-08-22 22:00:00.000
#3 2018-08-22 22:30:00 2018-08-22 22:30:00.000