2013-07-10 64 views
1

我有一個包含日期的數據幀,我需要找到除今年第一和最後日期。 還有就是我的日期的一部分:R:發現第一個和最後日期時間數據

2003-09-27 
2004-09-17 
2005-09-23 
2006-09-21 
2007-09-20 
2008-09-26 
2009-10-11 
2010-09-28 
2011-09-01 

就一定要翻譯,我想什麼英語我會把這個問題的形式。

這將回答這個問題是這樣的: -of所有的調查,是哪一年你的開始計數較早的? - 它是在2004年

的09-17我怎麼能找到這個日期?

感謝您的幫助!

編輯 我試着自動找到哪個日期是我所有調查的早些時候。這些日期是計數日,我需要找出計數會議哪一年最早開始。我不是在尋找最廣泛的範圍。我想我需要擺脫一年來找到這個。看起來我不能將年份分開並保留日期格式,因爲當我打印「Month-Day」部分時,它會自動添加2013.

我的問題的第二部分是:當找到此日期時,我怎樣才能調用整個日期(與年份),因爲它是在我的入境數據框?

我現在希望它更清晰!

+0

的問題是不明確的。預期的結果是什麼?你想每年的憤怒? – agstudy

回答

5

使用所提供的數據,本應確定9月1日,2011年作爲最早的日期(而不是17號2004年9月)。

dates <- c("2003-09-27", "2004-09-17", "2005-09-23", "2006-09-21", 
      "2007-09-20", "2008-09-26", "2009-10-11", "2010-09-28", 
      "2011-09-01") 

dates[order(format(as.Date(dates),"%m%d"))[1]] 
#[1] "2011-09-01" 
# it works! 
+1

是的!那正是我想要的!謝謝!對於後代,我通過[長度(日期)]取代[1]找到了最新的日期] – user2542995

+0

感謝thelatemail。我發現使用格式字符串「%Y%m%d」是必要的,其中日期格式化時沒有填充零。即2011-5-1。 – jprockbelly

-1
dates <- structure(c(12322, 12678, 13049, 13412, 13776, 14148, 14528, 
       14880, 15218), class = "Date") 

md <- (as.numeric(format(dates, "%m%d"))) 
dates[c(which.min(md), which.max(md))] 
3

只需使用range,無需轉換,以時間:

dates <- c("2003-09-15", "2002-04-04", "2002-11-17", "2005-09-23", 
      "2013-03-03", "2005-08-04", "2011-05-05", "2013-08-08", "2013-01-04") 

# Find which years we have 
years <- strftime(dates, "%Y") 

res <- sapply(unique(years), function(y){ 
     # Find which days are in the specific year we're looking at 
     idx <- which(years==y); 
     # Return the range 
     return(range(dates[idx])); 
     }) 

> res 
    2003   2002   2005   2013   2011   
[1,] "2003-09-15" "2002-04-04" "2005-08-04" "2013-01-04" "2011-05-05" 
[2,] "2003-09-15" "2002-11-17" "2005-09-23" "2013-08-08" "2011-05-05" 
+0

嗨,感謝您的幫助,您的回答實際上幫助我找到了另一個問題的解決方案(所有調查的天數意味着不同),但沒有回答我的第一個問題。我無法解釋我真正想要的,所以我編輯了我的問題。 – user2542995

相關問題