如何将数据框中的列转换为 POSIXct class?只有月份和年份

How to turn a column in a data frame to as POSIXct class? Only have month and year

我正在尝试将一组值转换为 POSIXct class,但它一直返回 NA。我只有月份和年份,并且该列的格式为“YYYY-MM”。 这是我拥有的数据片段:

yr_mo
"2012-08"
"2012-08"
"2012-08"

这是我返回 NA 的代码:

yr_mo <- as.POSIXct(strptime(x=yr_mo, format = "%Y-%m", tz= "America/Los_Angeles"))

我尝试了不同的格式,例如 "%Y-%m-%d",但没有成功。我也试过 as.Date 也没有用。

我正在尝试为 ArcGIS 准备好这些数据。

你可能会 paste 幻影般的一天。

as.POSIXct(paste0(d$yr_mo, "-01"), tz="GMT")
# [1] "2012-08-01 GMT" "2012-08-01 GMT" "2012-08-01 GMT"

数据:

d <- read.table(text='yr_mo
                "2012-08"
                "2012-08"
                "2012-08"', header=TRUE)

使用lubridate

library(lubridate)
ymd(df$yr_mo, truncated = 1)
#[1] "2012-08-01" "2012-08-01" "2012-08-01"

或转换为POSIXct

ymd_hms(df$yr_mo, truncated = 4)
#[1] "2012-08-01 UTC" "2012-08-01 UTC" "2012-08-01 UTC"

数据

df <- structure(list(yr_mo = c("2012-08", "2012-08", "2012-08")), 
  class = "data.frame", row.names = c(NA, -3L))