我是R.的新手。我有一个大型数据集,其中一列包含时间戳。列内容的格式例如是2015年3月7日星期六18:38:01 2015年东部时间。 现在我想在数据框中创建一个只有日期的附加列。我在第二栏中所关心的只是例如2015年3月7日。我尝试了其他类似的问题,但他们正在处理不同的格式。提前谢谢!
修改
问题已经解决。最好的方法是将其转换为POSIXct对象,然后从中删除时间或日期。
答案 0 :(得分:1)
这适用于您的示例。如果它适用于您的完整数据集,请告诉我:
x = "Sat Mar 07 18:38:01 EST 2015"
as.Date(x, format="%a %b %d %H:%M:%S EST %Y")
[1] "2015-03-07"
有关解析日期和时间的所有格式代码的详细信息,请参阅?strptime
。
更新:根据您的评论,将其添加到您的数据集中:如果您的数据框名为df
且原始列为timestamp
,那么...... < / p>
df$date = as.Date(df$timestamp, format="%a %b %d %H:%M:%S EST %Y")
答案 1 :(得分:0)
您可以一起使用format
,as.Date
和strptime
:
x <- 'Sat Mar 07 18:38:01 EST 2015'
## Convert to date
y <- as.Date(strptime(x, '%a %b %d %H:%M:%S EST %Y'))
y
##[1] "2015-03-07"
## Change format
format(y, '%b %d %Y')
##[1] "Mar 07 2015"
## Do the whole thing in one line
format(as.Date(strptime(x, '%a %b %d %H:%M:%S EST %Y')), "%b %d %Y")