Sono molto nuovo alla programmazione con R, ma sto cercando di leggere più file per una directory e dare a ognuno un nome univoco. Sto leggendo i file usando la libreria di programmi di Dendrocronologia in R (pacchetto dpIR) e la funzione read.tucson
. Sebbene io stia utilizzando un pacchetto specifico, ritengo che la mia domanda sia abbastanza generale:Come rinominare un data-frame in un ciclo
All'interno del ciclo, voglio creare file concatenando uno "t"
con ciascun nome di file. Quindi, se ho un file chiamato "2503"
nella mia directory, voglio creare un dataframe in R chiamato "t2503"
. Successivamente, voglio leggere i dati usando la funzione r.tucson
in ogni dataframe. Piuttosto che assegnare i dati letti al dataframe, sto semplicemente sovrascrivendo la concatenazione con i dati. Qualcuno può aiutarmi a capire quale passo mi manca?
Ecco il codice che sto cercando di utilizzare:
#set to appropriate directory
setwd("C:/work")
#get a list of files in the directory
files <- list.files()
numfiles <- length(files)
for (i in 1:numfiles)
{
name<-paste("t",files[i],sep="")
name<-read.tucson(files[i],header=NULL)
}
Grazie per il vostro aiuto! Ho provato a utilizzare "assegna" come hai delineato qui e ha fatto esattamente ciò di cui avevo bisogno. Grazie! – user1913921
ATTENZIONE: quando si usa 'assign' in una funzione si comporta diversamente dal suo utilizzo al livello più alto, prima o poi è necessario' env = .GlobalEnv'. – user1666959
Questo è un buon consiglio. Se l'OP vuole ulteriori informazioni al riguardo, può dare un'occhiata [qui] (http://stackoverflow.com/questions/9801208/assign-a-function-in-a-loop). –