Fixation dimnames (x) d'objets XTS en boucle via R
Question
Supposons que j'ai une liste de variables (classe: XTS) dans .GlobalEnv
identifiés comme suit:
ABC.xyz
DEF.xyz
GHI.xyz
Ces variables sont générées par l'intermédiaire d'une fonction.
À l'heure actuelle, les variables dans chaque « têtes de colonne sont » non-sens à partir de la sortie de la fonction d'origine.
Je voudrais renommer les colonnes dans chacune de ces variables aux trois premières lettres du nom de la variable, suivi d'un suffixe générique; dire:
".XXX"
J'ai essayé d'écrire une boucle rapide qui utilise la fonction dimnames(x)
pour y parvenir est comme suit:
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="")))
}
Ce produit l'erreur:
error in dimnames(rename.list[i]) <- list(NULL, c(paste(substr(rename.list[i], 0, 3), :
'dimnames' applied to non-array
Je peux voir pourquoi cette erreur se produit (en utilisant dimnames sur rename.list appelle le nom lui-même plutôt que l'objet XTS), mais pas sûr de savoir comment contourner ce problème. Etc get
essayé d'utiliser.
Détails:
2,13 R Win 7 Package 'XTS de charge.
Un grand merci à l'avance pour toute aide (ou des suggestions pour éviter la boucle du tout!)
La solution
Vous pouvez assign
:
tmp <- get(rename.list[i])
names(tmp) <- ...
assign(rename.list[i], tmp, envir=.GlobalEnv)