当我尝试在 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”
这与 无关,因为您将在此处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