如何将R中的日期和时间戳转换为仅限日期戳?

时间:2016-02-08 00:59:22

标签: r date time timestamp

我是R.的新手。我有一个大型数据集,其中一列包含时间戳。列内容的格式例如是2015年3月7日星期六18:38:01 2015年东部时间。 现在我想在数据框中创建一个只有日期的附加列。我在第二栏中所关心的只是例如2015年3月7日。我尝试了其他类似的问题,但他们正在处理不同的格式。提前谢谢!

修改

问题已经解决。最好的方法是将其转换为POSIXct对象,然后从中删除时间或日期。

2 个答案:

答案 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)

您可以一起使用formatas.Datestrptime

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")