Frage

Ich bin mit dem quantmod Paket Finanzreihendaten von Yahoo zu importieren.

library(quantmod)
getSymbols("^GSPC")
[1] "GSPC"

Ich möchte den Namen des Objekts „GSPC“ auf „SPX“ ändern. Ich habe die Umbenennungsfunktion im reshape Paket versucht, aber es ändert sich nur die Variablennamen. Das „GSPC“ Objekt hat Vektoren GSPC.Open, GSPC.High, etc. Ich würde meine Umbenennung von „GSPC“ auf „SPX“ auch gerne GSPC.Open zu SPX.Open ändern und so weiter.

War es hilfreich?

Lösung

Umbenennen eines Objekts und die COLNAMES in ihm ist ein zweistufiger Prozess:

SPY <- GSPC # assign the object to the new name (creates a copy)
colnames(SPY) <- gsub("GSPC", "SPY", colnames(SPY)) # rename the column names

Ansonsten ist die getSymbols Funktion können Sie auf nicht auto assign, in dem Fall, dass Sie den ersten Schritt überspringen konnte (Sie werden noch die Spalten umbenennen müssen).

SPY <- getSymbols("^GSPC", auto.assign=FALSE)

Kommentar von @backlin

R beschäftigt sogenannte lazy evaluation . Ein Effekt davon ist, dass, wenn Sie „kopieren“ SPY <- GSPC Sie nicht wirklich neuen Platz im Speicher für SPY zuordnen. R kennt die Objekte identisch sind und machen nur eine neue Kopie im Speicher, wenn einer von ihnen geändert wird ( dh , wenn sie nicht mehr das gleiche, zB , wenn Sie das ändern Spaltennamen in der folgenden Zeile). Also, indem Sie

SPY <- GSPC
rm(GSPC)
colnames(SPY) <- gsub("GSPC", "SPY", colnames(SPY))

Sie nie kopieren GSPC wirklich, sondern nur geben ihm einen neuen Namen (SPY) und dann R sagen, die Vornamen (GSPC) zu vergessen. Wenn Sie dann die Spaltennamen ändern Sie nicht brauchen, um eine neue Kopie von SPY zu schaffen, da GSPC nicht mehr existiert, haben wirklich das Objekt umbenannt Sie also ohne Zwischenkopien zu erstellen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top