簡體   English   中英

R:將月份和2位數的年份轉換為日期

[英]R: Convert month and 2 digit year into date

如何在R和lubridate轉換此日期字符串?

lubridate::as_date('Apr-78', format = '%B-%Y')

如何防止錯誤的invalid 'tz'

lubridate::parse_date_time("Apr-78", 'my')

其他人已經提到您的format不太正確,因此請當心。 就時區而言:我首先想到的是,您只需要添加tz = "UTC" (或其他時區),但是您的日期沒有日期信息這一事實是更大的問題。 如果您不解決此問題,則通過tz添加時區將僅產生NA 有兩種簡單的方法可以解決這個問題。 您可以簡單地將任意一天paste到日期上,但是可以使用readr::parse_date進一步簡化事情,該方法默認為月份的第一天。 然后,您可以從結果日期中提取月份和年份,然后刪除日期,例如:

library(tidyverse)
library(lubridate)

parse_date("Apr-78", "%b-%y") %>% 
    tibble(date = ., year = year(date), month = month(date)) %>% 
    select(-date)

這將為您提供年份和月份的兩個變量:

# A tibble: 1 x 2
   year month
  <dbl> <dbl>
1  1978     4

您也可以保留日期而不是提取年和月,但是這可能會使您迷惑不解-即某人可能會在1978年4月1日而不是1978年4月發生某件事。您可能會按年份和/或分組或幾個月,因此將它們變成變量是有意義的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM