2013-05-06 8 views
5

Rに日付として1つの列を認識させたいと思います。しかし、私は 'as.Date'と 'format'を使ってフォーマットしようとすると、私はNAだけを取得します。私はどこが間違っているのか分からない。日付を "%Y-%m"形式に整形する際に問題が発生する

> d = read.table("ByMonth.Year_54428.txt", header=T, sep=",") 
> str(d) 
'data.frame': 607 obs. of 2 variables: 
$ V1 : Factor w/ 607 levels "1950-12","1951-01",..: 1 2 3 4 5 6 7 8 9 10 ... 
$ Rain: int 100 56000 29293 37740 19649 41436 58067 51082 49629 62680 ... 
> 
> 
> Date.form1 <- as.Date(d$V1, "%Y-%m") 
> str(Date.form1) 
Date[1:607], format: NA NA NA NA NA NA NA NA NA NA NA NA NA NA ... 
> 
> Date.form2 = as.Date(as.character(d$V1), format="%Y-%m") 
> str(Date.form2) 
Date[1:607], format: NA NA NA NA NA NA NA NA NA NA NA NA NA NA ... 

答えて

14

年月はありません。また、1日も必要です。

d <- data.frame(V1=c("1950-12","1951-01")) 
as.Date(paste(d$V1,1,sep="-"),"%Y-%m-%d") 
# [1] "1950-12-01" "1951-01-01" 

また、動物園パッケージでyearmonクラスを使用することもできます。

library(zoo) 
as.yearmon(d$V1) 
# [1] "Dec 1950" "Jan 1951" 
+0

ああ、ありがとう! ByMonth.Year = rowsum(out $ rain_fall、format(out $ Date、 "%Y-%m")) 'を使ってデータを取得したので、 1日は使用しません。再度、感謝します! – KG12

+0

もちろん、「as.Date」には1日が必要です。私はあなたに「何日生まれたのですか?」と尋ねると、「1950年12月」と答えることはできません。 '?format'の_Value_セクションにあるように、' format'はそのオブジェクトを文字ベクトルに変換します。 –

関連する問題