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!)

Était-ce utile?

La solution

Vous pouvez assign:

tmp <- get(rename.list[i])
names(tmp) <- ...
assign(rename.list[i], tmp, envir=.GlobalEnv)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top