2013-05-06 13 views
5

R'nin bir sütunu tarih olarak tanımasını istiyorum. İthalat sırasında faktör olarak okunur, ancak 'as.Date' ve 'format' ile biçimlendirmeye çalıştığımda sadece NA'ları alırım. Nerede yanlış gittiğimi bilmiyorum.Biçimlendirme biçimi "% Y -% m" biçiminde biçimlendiriliyor

> 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 ... 

cevap

14

Bir yıl ve ay bir tarih yazmaz. Ayrıca bir güne ihtiyacın var.

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" 

Ayrıca hayvanat bahçesi paketinde yearmon sınıfını kullanabilirsiniz.

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

ah, teşekkürler! As.Date'in bir güne ihtiyaç duyduğunu bilmiyordum çünkü veriyi kullanarak aldım: 'ByMonth.Year = rowsum ($ rain_fall, format ($ Date tarihi,% Y-% m))) bir gün kullanmaz. Tekrar teşekkürler! – KG12

+0

Elbette 'as.Date' bir güne ihtiyaç duyar. Sana sordum, "hangi gün doğdun?" Diye cevap vermedin, "1950 Aralık". 'Format'ın _Value_ bölümünde yazdığı gibi,' format' nesnesini bir karakter vektörüne dönüştürür. –

İlgili konular