2010-11-18 11 views
2
Ben

Read.zoo yerine read.table ve zoo() kullanarak?

tmp <- read.table("myfile") 
GOEMD <- zoo(tmp[,3], as.chron(paste(tmp[,1],tmp[,2]), format="%Y-%m-%d %H:%M")) 

düzgün çalıştığını kullanan Ama bunun yerine read.zoo() kullanmak istiyorum hayvanat bahçesi olarak

Ben okumak için bu tür

2010-01-12 19:40 1021.00000 0.00001  1.00 
2010-01-12 19:50 1031.00000 0.00000  -1.00 

birçok satır içeren bir dosya var.

denedim

f <- function(x) as.chron(paste(tmp[,1],tmp[,2])) 
tmp <- read.zoo("myfile", index = 1:2, sep=" ", FUN = f) 

ve hatta belirterek

colClasses= c("character","character","numeric","numeric","numeric") 

ama çalışmıyor; diyor: hattı 136 (yukarıda yapıştırdım bir) 14 elemanları bulunmamaktadır.

Ben de denedim:

tmp <- read.zoo("myfile", index = 1:2, sep=" ", FUN = as.chron) 

cevap

3
  1. yazım hatası içinde: o sekme ile sınırlandırılmış değil, boşlukla ayrılmış gibi bu yerine gerekebilir böylece

    f <- function(x) as.chron(paste(x[,1],x[,2])) 
    tmp <- read.zoo("myfile", index = 1:2, sep=" ", FUN = f) 
    

    Ayrıca numune veriler, görünüyor yayınlanmıştır f zaten işaret edildi.

  2. Ayrıca, yararlanmak isteyebileceğiniz read.zoo'un birkaç özelliği vardır. Öncelikle, index bağımsız değişkeninin değeri bir liste ise, o listenin her bileşeninde başvurulan sütunların FUN'a ayrı bağımsız değişkenler olarak iletildiğini unutmayın. Ayrıca FUN2 argüman FUN çıkışında uygulandığı mevcut olduğuna dikkat yüzden böyle bir kompakt biçimde yazabilir:

Böylece bu deneyin:

library(zoo) 
library(chron) 

Lines <- "2010-01-12 19:40 1021.00000 0.00001  1.00 
2010-01-12 19:50 1031.00000 0.00000  -1.00" 

z <- read.zoo(textConnection(Lines), index = list(1, 2), 
     FUN = paste, FUN2 = as.chron) 

yukarıda yazılmıştır Kendiniz yer alsın, böylece panoya verbatim kopyalayıp daha sonra R oturumunuza yapıştırabilirsiniz. Dosyanızla birlikte kullanmak için textConnection(Lines)'u "myfile" ile değiştirin.

+0

Merhaba. İşe yarıyor. Ama sadece ilk 3 satırı nasıl okuyabilirim, aynı satırda. Bir değişkenim varsa, myvar [1: 3] yazarım ama bunu doğrudan bir dosya adıyla nasıl yapabilirim? cheers – skan

+0

Yolu buldum: read.zoo ("myfile.txt", colClasses = c ("karakter", "karakter", "sayısal", "sayısal", "NULL"), dizin = liste (1, 2) , FUN = yapıştır, FUN2 = as.chron) – skan

2

İşleviniz ftmp aramak zorundadır. Muhtemelen amaçlanan:

tmp <- read.zoo("myfile", index = 1, sep="\t", FUN = as.chron) 
+0

Üzgünüm, yazım hatası. Her neyse, benim için işe yaramıyor. – skan

İlgili konular