I want to export all dataframes from my list of 3 lists to separate '.txt' files.
I have a list 'my_list' containing 3 lists (list1, list2 and list3).
Each list contain multiple dataframes. I want to export all dataframes for the 3 lists to separate files (r1_df1.txt, r1_df2.txt, r2_df3.txt, r2_df4.txt, r2_df5.txt, r3_df6.txt, r3_df7.txt, r3_df8.txt)
Let create some dataframes:
df1 <- data.frame(geneName = 1:3, EnsemblID = 4:6, position = c(654654654,654654,654654))
df2 <- data.frame(id = 1:3, sex = c("M", "F", "T"))
df3 <- data1 <- data.frame(x1 = 1:3, x2 = letters[1:3])
df4 <- data.frame(y1 = c(3, 2, 1), y2 = c(6, 5, 4))
df5 <- data.frame(geneName = 1:3, EnsemblID = 4:6, position = c(65465,654654,987987))
df6 <- data.frame(id = 1:3, sex = c("C", "S", "T"))
df7 <- data1 <- data.frame(x1 = 1:3, x2 = letters[1:3])
df8 <- data.frame(z1 = c(3, 45, 1), p2 = c(6, 5, 4))
dataframes in a list
list1 <- list(df1, df2); names(list1) <- c("df1", "df2")
list2 <- list(df3,df4,df5); names(list2) <- c("df3", "df4", "df5")
list3 <- list(df6, df7, df8); names(list3) <- c("df6", "df7", "df8")
my_list contain the 3 lists
my_list <- list(list1, list2, list3); names(my_list) <- c("r1", "r2", "r3")
Export dataframes to separate .txt files**
for one list I use this code
lapply(seq_along(list1),
function(i) write.table(list1[[i]],
paste0("r1_", names(list1)[i] , ".txt"),
row.names = FALSE, quote = FALSE, sep = "\t", dec = ","))
## r1_df1.txt
## r1_df2.txt
How can I do the same thing for all lists at once?
I tried for loop
for (i in seq_along(my_list)) {
filename = paste("r_", names(my_list)[i], ".txt")
write.table(my_list[[i]], filename, row.names = FALSE, quote = FALSE, sep = "\t", dec = "," )
}
I get 3 files, each one with bind dataframes and not separate dataframes.