R:使用 lubridate as.Dates 函数将 YYYYMMDD 转换为日期
R: Using the lubridate as.Dates function to convert YYYYMMDD to dates
目前我正在尝试将 YYYYMMDD 格式的日期转换为单独的年月日列。我知道使用 as.Date 函数我可以将 YYYYMMDD 转换为 YYYY-MM-DD,然后从那里开始工作,但是 R 误解了日期,我不确定该怎么做。该函数正在将值转换为日期,但不正确。
例如:R 正在将“19030106”转换为“2019-03-01”,而它应该是“1903-01-06”。我不确定如何解决这个问题,但这是我正在使用的代码。
library(lubridate)
PrecipAll$Date <- as.Date(as.character(PrecipAll$YYYYMMDD), format = "%y%m%d")
YYYYMMDD 目前是数字,我需要包含 as.character 才能输出日期,但如果有更好的解决方案请帮忙。
此外,如果您有任何关于将更正日期分成单独的年、月和日期列的提示,我们将不胜感激。
使用 {lubridate},尝试 ymd()
解析 YYYYMMDD 变量,如果它是数字或字符形式则不会重新排序。还可以使用 {lubridate} 的 year
、month
和 day
函数将这些变量作为数字信号获取。
library(lubridate)
PrecipAll <- data.frame(YYYYMMDD = c(19030106, 19100207, 20001130))
mutate(.data = PrecipAll,
date = lubridate::ymd(YYYYMMDD),
year = year(date),
month_n = month(date),
day_n = day(date))
YYYYMMDD date year month_n day_n
1 19030106 1903-01-06 1903 1 6
2 19100207 1910-02-07 1910 2 7
3 20001130 2000-11-30 2000 11 30
目前我正在尝试将 YYYYMMDD 格式的日期转换为单独的年月日列。我知道使用 as.Date 函数我可以将 YYYYMMDD 转换为 YYYY-MM-DD,然后从那里开始工作,但是 R 误解了日期,我不确定该怎么做。该函数正在将值转换为日期,但不正确。
例如:R 正在将“19030106”转换为“2019-03-01”,而它应该是“1903-01-06”。我不确定如何解决这个问题,但这是我正在使用的代码。
library(lubridate)
PrecipAll$Date <- as.Date(as.character(PrecipAll$YYYYMMDD), format = "%y%m%d")
YYYYMMDD 目前是数字,我需要包含 as.character 才能输出日期,但如果有更好的解决方案请帮忙。
此外,如果您有任何关于将更正日期分成单独的年、月和日期列的提示,我们将不胜感激。
使用 {lubridate},尝试 ymd()
解析 YYYYMMDD 变量,如果它是数字或字符形式则不会重新排序。还可以使用 {lubridate} 的 year
、month
和 day
函数将这些变量作为数字信号获取。
library(lubridate)
PrecipAll <- data.frame(YYYYMMDD = c(19030106, 19100207, 20001130))
mutate(.data = PrecipAll,
date = lubridate::ymd(YYYYMMDD),
year = year(date),
month_n = month(date),
day_n = day(date))
YYYYMMDD date year month_n day_n
1 19030106 1903-01-06 1903 1 6
2 19100207 1910-02-07 1910 2 7
3 20001130 2000-11-30 2000 11 30