2015-12-11 50 views
0

數據集我有日期,日期1和date2的列表,格式爲yyyymmdd轉換日期爲NUMER R中

require(date) date1: 1960-01-02, 1962-09-30, ... date2: 1960-01-15, 1962-09-01,...

我想除了找到的天數,例如,從date1的第一個日期到date2的第一個日期有13天。 我已嘗試as.numeric(as.date(date1,orgin="1960-01-01"))但我收到錯誤消息「無法強制轉換爲日期格式」

有人可以幫我嗎?

+0

使用lubridate庫 – Bg1850

+0

或者使用base R'as.Date' then'-'(或'difftime')。 –

+0

我試過了。我得到的錯誤:錯誤在as.Date.default(Date1): 不知道如何將'Date1'轉換爲類'日期' –

回答

1

這正是哈德利韋克姆的lubridate圖書館所擅長的。

#install.packages('lubridate') 
library(lubridate) 
date1 <- c('1960-01-02', '1962-09-30') 
date2 <- c('1960-01-15', '1962-09-01') 

# "ymd" = "year|month|day" 
d1 <- ymd(date1) 
d2 <- ymd(date2) 

然後我們可以通過減去向量來計算間隔。

> d2-d1 
Time differences in days 
[1] 13 -29 
+0

我安裝了軟件包並做了你最新的,但是我得到了錯誤警告信息: 所有格式都解析失敗。找不到格式。沒有看到錯誤, –

+0

無法幫助您。如果你可以提供一個最簡單的例子,它會有所幫助http://stackoverflow.com/help/mcve –

+0

這意味着你的日期並不是「lubridate」能夠理解的「年月日」格式。您需要發佈一些示例數據。 –