2016-02-08 278 views
-2

我是R新手。我有一个包含时间戳的列之一的大数据集。列内容的格式是例如Sat Mar 07 18:38:01东部时间2015. 现在我想在日期的数据框中创建一个额外的列。我在第二栏中关心的是2015年3月7日。我尝试了其他类似的问题,但他们正在处理不同的格式。提前致谢 !如何将R中的日期和时间戳转换为仅日期戳记?

+0

@DirkEddelbuettel,但如果这个问题是一个重复的,我不会感到惊讶,好像链接的答案没有按”覆盖OP使用案例中格式问题的范围。 – eipi10

+0

没关系。我们有1600个关于'strptime'的问题。选一个。任何人。 –

回答

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") 
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的更多信息,全部用于解析日期和时间格式代码。

UPDATE:根据您的评论,这种添加到您的数据集:如果你的数据帧被称为df和你原来的列是timestamp然后...

df$date = as.Date(df$timestamp, format="%a %b %d %H:%M:%S EST %Y") 
+0

这适用于整个数据集。就在那一年,2015年被评为2016年。我想我可以解决这个问题。你知道一种方法,我可以添加这个变量作为我的数据集中的列。 – RforResearch