如何在同一列中标准化混合日期格式

时间:2015-10-18 05:37:48

标签: r date dataframe

我有一个数据框,其中一列中的数据当前是“字符”,我需要将其更改为“日期”,但日期是混合格式,所以我不能只使用as.Date()。列中还有空行。以下是数据样本

> head(FarmersMkt$StartDate,n = 50)
 [1] "June "       "January "    "05/01/2013 " "July "       "06/17/2013 "   "05/04/2013 " ""            "06/27/2013 "
 [9] "June "       ""            "06/29/2013 " "06/06/2013 " ""                "May "        ""            ""           
[17] "05/11/2013 " "01/01/2013 " ""            "June "       "June "           "06/06/2013 " ""            ""           
[25] ""            "04/20/2013 " ""            ""            "05/11/2013 "     ""            "01/01/2013 " "01/01/2013 "
[33] "06/06/2013 " "May "        "06/23/2013 " "01/01/2013 " "June 17, 2012 "        "June "       ""            ""           
[41] "06/06/2013 " ""            "May "        ""            ""                ""            "04/20/2013 " "01/01/2013 "
[49] "07/13/2013 " "" 

所有年份都应该是2013年,日期可以是虚拟数据。如何将此列中的数据转换为日期格式?

2 个答案:

答案 0 :(得分:1)

假设您知道观察的年份,并且您对从“六月”到标准化的映射感到满意,例如“2013-06-01”(设置月份等于第一天),然后我将采用的方法是生成两个新列,第一个将“%m /%d /%Y”格式转换为标准日期,第二个将“%B”转换为标准日期。然后将它们放在一起。如下所示:

$('.record').hide();
$('a.editRecord').click(function(e) {
    e.preventDefault();
    $('.record').hide();  
    $(this).closest('tr').nextUntil(":not(.record)").toggle('slow');                
});

答案 1 :(得分:0)

答案是你不应该,即使有另一列告诉你它的格式

你将如何介入06/08/2010 1)2010年6月8日 2)2010年8月6日

我总是会转换为标准格式,因此我可以对其进行计算然后存储。如果我必须总是以不同的方式显示它,那么我会有另一个列告诉我如何显示它。