DataFrame中字符型日期转标准日期格式返回NA的问题
R语言字符型日期转标准日期返回NA的解决办法
你的DataFrame里有一列字符型日期数据,格式示例如下:
str(mv$datum_mw) # 输出:chr [1:6] "Nov 15, 2012" "Jan 28, 2013" "Aug 12, 2014" "Feb 12, 2015" "Jul 1, 2015" "Feb 9, 2016"
之前转换时全返回NA,问题出在as.Date()的format参数和实际日期格式不匹配,以下是正确的处理步骤:
正确转换为Date类型
直接用和字符串格式完全匹配的参数:
mv$new_date_column <- as.Date(mv$datum_mw, format = "%b %d, %Y")
格式参数说明:
%b:匹配英文月份缩写(比如Nov、Jan)%d:匹配日期(支持带/不带前导零的数字,比如15、1),:严格对应日期后的逗号和空格%Y:匹配4位年份
转换为自定义显示格式
如果需要把标准Date类型转成特定格式(比如Nov-12 2012),可以用format()函数:
mv$formatted_date <- format(mv$new_date_column, "%b-%y %Y")
之前的错误原因
- 你用的
"%b ,%d %Y"格式顺序错误,原字符串是月份+空格+日期+逗号+空格+年份,而你的参数写成了月份+空格+逗号+日期+空格+年份,完全不匹配 "%m/%d/%Y"是数字日期格式(比如11/15/2012)的匹配参数,和你的英文缩写格式完全不符,自然返回NA
内容的提问来源于stack exchange,提问作者TomTe
相关产品推荐
相关产品推荐

