将字符转换为日期

时间:2018-11-15 01:12:20

标签: r date

在R中,这似乎应该很明显,但是我遇到了麻烦。我将日期格式设置为1/1 / 00、12 / 31/00等,每个部分都缩写了。

当我尝试将其转换为日期时,出现此错误:

> headlines$Date <- as.Date(headlines$Date)
Error in charToDate(x) : 
  character string is not in a standard unambiguous format

我也尝试了以下方法,但是得到了所有NA

> headlines$Date <- as.Date(headlines$Date,format="%b/%d/%y")

我应该如何将该列转换为日期?

2 个答案:

答案 0 :(得分:1)

format = "%b/%d/%y"替换为format = "%m/%d/%y"

%b表示月份,如JanFebMar等。

%m是等效的整数(123等)。

进一步阅读:https://www.stat.berkeley.edu/~s133/dates.html

答案 1 :(得分:1)

通过添加format参数,您处在正确的轨道上。我猜你意识到第一个错误(“字符串不是标准的明确格式”)是因为R不知道哪个数字是日,月或年。假设其中一个值为“ 01/02/03”;无法知道是2003年1月2日还是2003年2月1日,依此类推。

在这种情况下,我认为您只需要修复传递给format参数的内容即可。 %b文本形式的缩写月份的符号,而不是数字形式(例如,“ Jan”代替“ 01”)。您需要使用%m代替几个月存储为数字。试试这个:

headlines$Date <- as.Date(headlines$Date,format="%m/%d/%y")

有关{R中的日期格式的更多信息,请参见this page