Domanda

Si supponga che ho un elenco di variabili (classe: XTS) in .GlobalEnv identificati come segue:

ABC.xyz
DEF.xyz
GHI.xyz

Queste variabili sono generati tramite una funzione.

Attualmente, le "colonna" di ciascuna variabile sono dialogo con l'uscita della funzione originale.

desidero rinominare le colonne in ciascuna di queste variabili per le prime tre lettere del nome variabile, seguito da un suffisso generico; dire:

".XXX"

Ho cercato di scrivere un breve ciclo che utilizza la funzione dimnames(x) per raggiungere questo obiettivo è il seguente:

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="")))
}

Questo produce l'errore:

error in dimnames(rename.list[i]) <- list(NULL, c(paste(substr(rename.list[i], 0, 3), : 'dimnames' applied to non-array

posso vedere perché si verifica questo errore (utilizzando dimnames su rename.list sta chiamando il nome stesso, piuttosto che l'oggetto XTS), ma non sapete come ottenere intorno a questo. Provato utilizzando get etc.

dettagli:

R 2.13 Win 7 Pacchetto 'XTS' caricato.

Molte grazie in anticipo per qualsiasi aiuto (o suggerimenti per evitare il loop a tutti!)

È stato utile?

Soluzione

Si può provare assign:

tmp <- get(rename.list[i])
names(tmp) <- ...
assign(rename.list[i], tmp, envir=.GlobalEnv)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top