[英]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.