2016-11-14 6 views
0
um

Ich habe einen Datenrahmen, den ich in ein ts-Objekt umgewandelt habe, und während er die Spaltennamen beibehielt, hat er aus irgendeinem Grund die rownames durch Indizes ersetzt.So benennen Sie die Zeile für ein Zeitreihenobjekt in R

die wirklich bizarre Sache ist, wenn ich row.names(deaths.ts) erhalte ich: Versuch

[1] "1980" "1981" "1982" "1983" "1984" "1985" "1986" "1987" "1988" "1989" "1990" 
[12] "1991" "1992" "1993" "1994" "1995" "1996" "1997" "1998" 

aber tatsächlich gibt die Ausgabe anzuzeigen:

Time Series: 
Start = 1 
End = 19 
Frequency = 1 
    Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec 
1 1.22 1.37 1.24 1.40 1.47 1.45 1.56 1.51 1.36 1.47 1.44 1.39 
2 1.39 1.28 1.26 1.43 1.47 1.54 1.41 1.33 1.38 1.30 1.28 1.35 
3 1.20 1.21 1.18 1.36 1.30 1.34 1.25 1.28 1.23 1.21 1.13 1.25 
4 1.04 1.21 1.14 1.14 1.13 1.27 1.37 1.10 1.18 1.00 1.22 1.25 
5 1.08 1.21 1.20 1.15 1.16 1.25 1.26 1.34 1.30 1.09 1.17 1.24 
6 1.25 1.25 1.19 1.25 1.05 1.27 1.27 1.11 1.19 1.15 1.25 1.29 
7 1.11 1.28 1.25 1.26 1.19 1.28 1.38 1.42 1.38 1.20 1.09 1.13 
8 1.11 1.30 1.30 1.10 1.24 1.21 1.36 1.21 1.11 1.06 1.26 1.29 
9 1.05 1.22 1.29 1.34 1.18 1.35 1.36 1.25 1.19 1.11 1.22 1.37 
10 1.20 1.28 1.16 1.26 1.26 1.40 1.27 1.26 1.27 1.25 1.27 1.31 
11 1.13 1.38 1.23 1.45 1.33 1.58 1.52 1.41 1.40 1.21 1.13 1.26 
12 1.13 1.24 1.33 1.44 1.58 1.45 1.54 1.50 1.43 1.29 1.27 1.36 
13 1.29 1.22 1.37 1.46 1.47 1.51 1.52 1.34 1.31 1.47 1.29 1.38 
14 1.18 1.38 1.42 1.53 1.47 1.65 1.51 1.43 1.55 1.37 1.38 1.40 
15 1.35 1.34 1.28 1.31 1.32 1.38 1.45 1.35 1.43 1.26 1.26 1.22 
16 1.11 1.17 1.20 1.19 1.22 1.37 1.46 1.29 1.38 1.23 1.09 1.15 
17 1.03 0.97 1.04 1.07 1.05 1.18 0.99 1.14 0.93 0.98 0.95 1.02 
18 0.93 1.03 0.90 0.95 0.89 1.10 1.01 0.95 1.07 0.89 0.90 0.97 
19 0.79 0.79 0.86 0.89 0.78 0.78 0.97 0.70 0.80 0.78 0.81 0.81 

es also hat die richtigen Zeilennamen dort in , zeigt aber stattdessen Indices. Warum sollte das sein? Bedeutet das, dass etwas daran falsch ist, wie ich den ursprünglichen Datenrahmen in ein ts konvertiert habe?

+0

Bitte speichern Sie Ihr Objekt über dput und in Ihrer Nachricht schreiben, so dass jeder es reproduzieren kann. – user31264

+0

Probieren Sie 'print.default (deaths.ts)' aus - so weit ich das beurteilen kann, lassen 'ts' Objekte während der Konvertierung abstürzen. Ich bin mir nicht sicher, wie du sie überhaupt da rein gebracht hast. Wie @ user31264 feststellt, wäre eine Beschreibung des Codes, den Sie zum Erzeugen des Objekts verwendet haben, nett. – thelatemail

Antwort

0

Sie haben eine multivariate Zeitreihe, wobei jede Spalte einen Monat umfasst. Vermutlich möchten Sie eine univariate Zeitreihe, daher müssen Sie zuerst Ihren Datenrahmen in einen numerischen Vektor umwandeln. Wenn deaths Ihre ursprüngliche data.frame ist, dann sollte der folgende Code konvertiert es:

deaths.ts <- ts(c(t(deaths)), frequency=12) 
Verwandte Themen