Fixieren von Dimnames (x) von XTS -Objekten in R über Schleife
Frage
Angenommen, ich habe eine Liste von Variablen (Klasse: XTs) in .GlobalEnv
identifiziert wie folgt:
ABC.xyz
DEF.xyz
GHI.xyz
Diese Variablen werden über eine Funktion erzeugt.
Gegenwärtig sind die "Säulenheader" in jeder Variablen Unsinn aus der Ausgabe der ursprünglichen Funktion.
Ich möchte die Spalten in jeder dieser Variablen in den ersten drei Buchstaben des variablen Namens umbenennen, gefolgt von einem generischen Suffix; sagen:
".XXX"
Ich habe versucht, eine kurze Schleife zu schreiben, die die Funktion verwendet dimnames(x)
Um dies zu erreichen, ist wie folgt:
rename.list <- ls(pattern="*.xyz",envir=.GlobalEnv)
for (i in 1:length(rename.list)){
dimnames(rename.list[i]) <-list(
NULL,
c(paste(substr(rename.list[i],0,3),".XXX",sep="")))
}
Dies erzeugt den Fehler:
error in dimnames(rename.list[i]) <- list(NULL, c(paste(substr(rename.list[i], 0, 3), :
'dimnames' applied to non-array
Ich kann es sehen warum Dieser Fehler tritt auf (unter Verwendung von Dimnames auf der Umbenennierung.List wird der Name selbst anstelle des XTS -Objekts aufgerufen), aber nicht sicher, wie man sich umgeht. Versucht zu verwenden get
usw.
Einzelheiten:
R 2.13 Win 7 Paket 'XTS' geladen.
Vielen Dank im Voraus für jede Hilfe (oder Vorschläge, um die Schleife überhaupt zu vermeiden!)
Lösung
Du kannst es versuchen assign
:
tmp <- get(rename.list[i])
names(tmp) <- ...
assign(rename.list[i], tmp, envir=.GlobalEnv)