R - 在数据框中存储润滑日期的问题

Pau*_*rer 0 r date lubridate

当我尝试在 DF 中存储日期时,它被表示为数字而不是数据格式。这是我的例子。

library(lubridate)

df1 = data.frame(task = c('do somthing', 'do something else', 'do something more')
                 ,Start_date = c(NA, NA, NA))

Start_date = ymd("2023-12-01")
df1$Date_Start[1] = Start_date

Start_date     #this returns a "2023-12-01"
df1$Date_Start[1]  #this returns a 19692
Run Code Online (Sandbox Code Playgroud)

我希望 df1$Date_Start[1] 存储“2023-12-01”

All*_*ron 5

这与 无关,因为您将在此处lubridate获得与 相同的结果。as.Datelubridate::ymd

当您创建一列 NA 值但打算将日期写入其中时,您需要告诉 R 您打算通过使用来as.Date(NA)填充该列来将其用于日期。否则,R 会将日期转换为数值。

library(lubridate)

df1 = data.frame(task = c('do somthing', 'do something else', 'do something more')
                 ,Date_Start = c(NA, NA, NA))

Start_date = ymd("2023-12-01")
df1$Date_Start <- as.Date(NA)
df1$Date_Start[1] <- Start_date[1]

Start_date 
#> [1] "2023-12-01"
df1$Date_Start[1] 
#> [1] "2023-12-01"

df1
#>                task Date_Start
#> 1       do somthing 2023-12-01
#> 2 do something else       <NA>
#> 3 do something more       <NA>
Run Code Online (Sandbox Code Playgroud)

创建于 2022-12-29,使用reprex v2.0.2