我发现从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/2016格式时转换,一旦长度增加,我的代码就会停止工作
每列的类型不同。日期是"因素"和newDate是" POSIXt"
代码
df_amd64chk$newDate <- strptime(as.character(df_amd64chk$Date), "%d/%m/%Y")
我对R很陌生,所以如果不能说清楚,我会道歉。提前谢谢。
答案 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")
这将恢复几乎原始格式,但它会添加前导零,其中月份或日期只有一位数。