Ho una lista dei frame di dati e ho dato ogni elemento della lista (ad esempio, ogni frame di dati) un nome:Utilizzando lapply per applicare una funzione sopra l'elenco dei frame di dati e il salvataggio di output per i file con nomi diversi
per esempio
df1 <- data.frame(x = c(1:5), y = c(11:15))
df2 <- data.frame(x = c(1:5), y = c(11:15))
mylist <- list(A = df1, B = df2)
Ho una funzione che desidero applicare a ciascun frame di dati; In questa funzione, voglio includere una riga per scrivere i risultati in un file (eventualmente voglio fare cose più complicate come salvare grafici della correlazione tra due variabili per ogni frame di dati ma ho pensato di iniziare in modo semplice)
per esempio
NewVar <- function(mydata, whichVar, i) {
mydata$newVar <- mydata[, whichVar] + 1
write.csv(mydata, file = i)
}
voglio usare lapply()
per applicare questa funzione per ogni frame di dati nella mia lista
qualcosa di simile:
hh<-lapply(mylist, NewVar, whichVar = "y")
non riesco a capire come assegnare la "i" nel contesto di lapply in modo che i
esegua l'iterazione dei nomi nell'elenco di frame di dati, salvando più file con nomi diversi (in questo caso, due file denominati A
e B
) che corrispondono al da fotogrammi.
So che hai detto che si sta cercando di evitare l'uso di un ciclo for ma penso che sia giusto usare un ciclo for in questo caso. Non mi piace usare 'lapply()' se non viene restituito nulla. Qualcosa come 'l_ply()' dal pacchetto 'plyr' è probabilmente più appropriato. O solo un ciclo for. – MadScone