2017-03-22 1 views
0

Ich habe zwei csv Dateien in einem Ordner. Meine Dateien wie folgt aussehen:R: Lesen von CSV-Dateien aus einem Verzeichnis mit Zoo zurückgibt logische anstelle von Zeitreihe

file1.csv file2.csv 
1   10 
2   20 
3   30 
4   40 
5   50 
6   60 
7   70 

Ich brauche diese csv in und sie in Zeitreihen ts zur weiteren Analyse mit stl zu lesen. Mein Versuch:

dir<-"C:\\Users\\MyName\\Desktop\\MyFolder" 
setwd(dir) 

library(zoo) 

listcsv<-dir(pattern="*.csv") 
z1 <- read.zoo(file = listcsv[1], sep = ",", header = FALSE) 
z2 <- read.zoo(file = listcsv[2], sep = ",", header = FALSE) 

gibt zwei Elemente, die logical statt ts des Typs sind:

> typeof(z1) 
[1] "logical" 
> typeof(z2) 
[1] "logical" 

Was mache ich falsch?

Antwort

1

typeof wird den Datentyp des atomaren Vektors in Ihrem ts zurückgeben. Um zu überprüfen, ob es sich um eine ts handelt, verwenden Sie class. Hier ist ein reproduzierbares Beispiel

# arbitrary time series 
temp <- ts(1:5) 

temp 
Time Series: 
Start = 1 
End = 5 
Frequency = 1 
[1] 1 2 3 4 5 

typeof(temp) 
[1] "integer" 

class(temp) 
[1] "ts" 
+0

Meine 'Klasse (z1)' gibt '"zoo" 'anstelle von' ts' zurück. Ich glaube, ich vermisse etwas ... – FaCoffee

+0

Das Konzept ist das gleiche. Zeitreihenobjekte (ts) können mit 'as.zoo' leicht in' zoo' Objekte umgewandelt werden. – lmo

0

Ein wenig Forschung geht einen langen Weg.

die csv Dateien in Zeitreihen zu aktivieren, es scheint, als ob es in Ordnung ist zu tun:

z3<-ts(z1) 
z4<-ts(z2) 

so dass:

> z3 
Time Series: 
Start = 1 
End = 7 
Frequency = 1 

1 
2 
3 
4 
5 
6 
7 
attr(,"index") 
[1] 1 2 3 4 5 6 7 

und

> class(z3) 
[1] "ts" 

Das gleiche natürlich gilt für z4.

Verwandte Themen