将R日期从2016年1月1日转换为2016年1月1日

时间:2016-06-14 17:55:38

标签: r date

我发现从2016年1月1日到2016年1月1日的多个帖子。我想走另一条路。

这是我的数据集

Date    duration   flavor    newDate 
6/4/2016    38  amd64chk    4/6/2016
6/3/2016    873 amd64chk    3/6/2016
6/3/2016    173 amd64chk    3/6/2016
6/3/2016    3383    amd64chk    3/6/2016
6/1/2016    665 amd64chk    1/6/2016
5/26/2016   665 amd64chk    NA
5/25/2016   665 amd64chk    NA
5/24/2016   147 amd64chk    NA
5/24/2016   733 amd64chk    NA
5/24/2016   249 amd64chk    NA

这里有两个问题:

  1. 日期仅在日期为1/1/2016格式时转换,一旦长度增加,我的代码就会停止工作

  2. 每列的类型不同。日期是"因素"和newDate是" POSIXt"

  3. 代码

    df_amd64chk$newDate <- strptime(as.character(df_amd64chk$Date), "%d/%m/%Y")
    

    我对R很陌生,所以如果不能说清楚,我会道歉。提前谢谢。

1 个答案:

答案 0 :(得分:3)

您提供的代码几乎是正确的。您可能想尝试这个小修改:

df_amd64chk$newDate <- as.Date(df_amd64chk$Date,"%m/%d/%Y")

请注意,%m%d的顺序与OP中发布的代码相反。

如果您对保留Date类不感兴趣,可以使用其他格式转换字符串中的输出:

df_amd64chk$newDate <- format(as.Date(df_amd64chk$Date,"%m/%d/%Y"),"%m/%d/%Y")

这将恢复几乎原始格式,但它会添加前导零,其中月份或日期只有一位数。