R 中通过 as.Date() 进行的日期字符串转换导致 NA
Date String conversion in R via as.Date() results in NAs
这个问题以前出现过,我知道,但是我在运行宁Sys.setlocale("LC_TIME", "american"之后一直没能推导出正确的输出).
好的,所以我有一个数据框,其中有一列日期看起来像“2020 年 10 月”和“2021 年 6 月”等。
I 运行 as.Date(dataframe$month_column, format = "%B %Y"), 我在 运行ning Sys.setlocale() 与上述输入。但是我的输出仍然是一堆 NA。
我想我可以尝试的一种解决方法是将 space 的月份和年份部分分成两列,这可能更容易强制转换为日期类型,但我想尽可能避免这种情况,因为我想按月份绘制数量。
如有任何见解,我们将不胜感激。
您可以使用lubridate
包中的my()
函数转换月份和年份的字符串。 my
,在这种情况下,代表 month-year(还有其他函数,如 mdy()
查找 month-day-year 形式的条目,以及 dym()
预计天-month-year订单)。
library(lubridate)
dates <- data.frame(
dt = c("October 2020", "June 2021")
)
dates$converted <-my(dates$dt)
dates
输出:
dt converted
1 October 2020 2020-10-01
2 June 2021 2021-06-01
这个问题以前出现过,我知道,但是我在运行宁Sys.setlocale("LC_TIME", "american"之后一直没能推导出正确的输出).
好的,所以我有一个数据框,其中有一列日期看起来像“2020 年 10 月”和“2021 年 6 月”等。
I 运行 as.Date(dataframe$month_column, format = "%B %Y"), 我在 运行ning Sys.setlocale() 与上述输入。但是我的输出仍然是一堆 NA。
我想我可以尝试的一种解决方法是将 space 的月份和年份部分分成两列,这可能更容易强制转换为日期类型,但我想尽可能避免这种情况,因为我想按月份绘制数量。
如有任何见解,我们将不胜感激。
您可以使用lubridate
包中的my()
函数转换月份和年份的字符串。 my
,在这种情况下,代表 month-year(还有其他函数,如 mdy()
查找 month-day-year 形式的条目,以及 dym()
预计天-month-year订单)。
library(lubridate)
dates <- data.frame(
dt = c("October 2020", "June 2021")
)
dates$converted <-my(dates$dt)
dates
输出:
dt converted 1 October 2020 2020-10-01 2 June 2021 2021-06-01