Salva diversi data.frames nell'ambiente di R usando per [duplicate]

Aug 31 2020

Sto cercando di salvare i frame di dati per diversi anni utilizzando per. Voglio salvare ogni frame di dati con un nome e alla fine del nome aggiungere l'anno. Ho il seguente codice, ma non capisco perché non funziona:

(years_vector = 1988:2017)
(N_years = length(years_vector))
ind_year <- 1

for (ind_year in 1:N_years) {

   year=years_vector[ind_year]
   x <- data.frame
   name <- paste("data", year, sep = "_")
   name <- x

} 

Posso generare correttamente i nomi e il ciclo, ma sembra che i frame di dati non vengano salvati nell'ambiente

Risposte

akrun Aug 31 2020 at 04:26

Abbiamo bisogno assigninvece di<-

 ...
   assign(name, value = x)

  }

Utilizzando un piccolo esempio riproducibile

(years_vector = 1988:1990)
(N_years = length(years_vector))
ind_year <- 1

for(ind_year in seq_len(N_years)) {
        year <- years_vector[ind_year]
       x <- data.frame(col1 = rnorm(10))
       nm1 <- paste("data", year, sep="_")
       assign(nm1, x)
}   

head(data_1988, 2)
#       col1
#1 0.9503611
#2 0.3362196