2016-04-19 32 views
1

ここにはどこにも見つからないという非常に単純な問題があります。私が試した月と年だけの日付を書式設定するR

31-07-2000, 31-07-2001, etc... 
31-12-2000, 31-12-2001, etc... 

times <- format(as.Date(time, "%B_%Y") 
times 
[1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 


times <- format(as.Date(time, "%B_%Y), "31-%m-%Y) 
times 
[1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 

times <- as.Date(paste("31", times, sep="-"), "%d-%m-%Y") 
times 
[1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 

times <- format(as.Date(time, "%b_%Y"), "31-%m-%Y") 
# NA 

私はかなりわからないんだけど、私は日付の形式にこれらを取得できますか

times = c("Dec_2011" , "July_2011", "Dec_2010" ,"July_2010" , "Dec_2009" , "July_2009", "Dec_2008" , 
        "July_2008" ,"Dec_2007" , "July_2007", "Dec_2006" , "July_2006" ,"Dec_2005" , "July_2005", 
        "Dec_2004" , "July_2004" ,"Dec_2003" , "July_2003", "Dec_2002" , "July_2002", "Dec_2001" , 
        "July_2001", "Dec_2000" , "July_2000") 

私は、日付形式を持っていますどうやって進める。我々は、すべての要素のための日として31を必要とする31に参加するpasteを使用する場合は

答えて

1

は、Dateクラスに変換し、formatで目的の形式を取得します。

format(as.Date(paste(times, "31", sep="_"), "%b_%Y_%d"), "%d-%m-%Y") 
#[1] "31-12-2011" "31-07-2011" "31-12-2010" "31-07-2010" "31-12-2009" "31-07-2009" "31-12-2008" "31-07-2008" "31-12-2007" "31-07-2007" "31-12-2006" 
#[12] "31-07-2006" "31-12-2005" "31-07-2005" "31-12-2004" "31-07-2004" "31-12-2003" "31-07-2003" "31-12-2002" "31-07-2002" "31-12-2001" "31-07-2001" 
#[23] "31-12-2000" "31-07-2000" 

代わりの手動paste 31をINGの、我々はzooからas.yearmonでこれを自動化することができます。利点は、31日未満の月には、それを行うことで最終日を得ることです。

library(zoo) 
format(as.Date(as.yearmon(times, "%b_%Y"), frac=1), "%d-%m-%Y") 
#[1] "31-12-2011" "31-07-2011" "31-12-2010" "31-07-2010" "31-12-2009" "31-07-2009" "31-12-2008" "31-07-2008" "31-12-2007" "31-07-2007" "31-12-2006" 
#[12] "31-07-2006" "31-12-2005" "31-07-2005" "31-12-2004" "31-07-2004" "31-12-2003" "31-07-2003" "31-12-2002" "31-07-2002" "31-12-2001" "31-07-2001" 
#[23] "31-12-2000" "31-07-2000" 
関連する問題