Escribir muchos archivos en un bucle for

Tengo datos de muestra como este

df <- data.frame(name = rep(letters[1:7], each = 24), salary = runif(24*7, 100, 200)) 

Yo quería separar cada nombre con sus salarios

 lst <- tapply(df$salary, df$name, matrix, nrow = 4, byrow = TRUE) 

Ahora quiero escribir todas estas 7 matrices en 7 archivos de texto diferentes. Funciona solo para una sola matriz a la vez. Intenté poner un ciclo for pero no funciona

 for (i in 1:7) { write.table(lst[i], ".txt", col.names = FALSE, row.names = FALSE, sep = "\t", quote = FALSE) } 

¿Alguien puede sugerir modificaciones en el ciclo for?

Dado su lst , el siguiente lo escribirá en una serie de archivos TXT con nombres iguales al nombre de lst , además de .txt :

 lapply(names(lst), function(x, lst) write.table(lst[[x]], paste(x, ".txt", sep = ""), col.names=FALSE, row.names=FALSE, sep="\t", quote=FALSE), lst) 

Para modificar su bucle for() , intente:

 for(i in seq_along(lst)) { write.table(lst[[i]], paste(names(lst)[i], ".txt", sep = ""), col.names = FALSE, row.names = FALSE, sep = "\t", quote = FALSE) } 

El problema era intentar o asumir que R pegaría los nombres de archivo por usted.

Prueba esto,

 for (ii in names(lst)){ filename <- paste(ii, ".txt", sep="") write.table(lst[[ii]], filename, col.names=FALSE,row.names=FALSE,sep="\t",quote=FALSE) }