我有一个包含不同行数(每行超过1M行)的数据框列表,我希望将它们保存到单个文件中,因为它们而不会附加它们或保存到单独的文件中。因此,他们保留数据框列表的结构,因为它们具有不同的信息和数据类型。
DO:
似乎只能通过将每个数据框保存在单独的文件中来实现:
data2 <- list("inventory"=inventory,"Warehouse"=Warehouse,"Shop_inventory"=Shop,"Result"=Result)
等等。
但我敢打赌应该有其他选择。
如果有办法将其保存为MS Access友好类型的文件,那将是理想的。 write.table(data2[[1]],"./df1.csv",sep = ",")
write.table(data2[[2]],"./df2.csv",sep = ",")
包中有mdb.get()
个函数。我想知道是否有类似的东西可以用这种格式写文件?
答案 0 :(得分:1)
这是一般方法
# a list of data.frames
df1 <- data.frame(x=1:3, y=letters[1:3])
df2 <- data.frame(x=11:13, y=letters[11:13])
x <- list(df1, df2)
# combine
y <- do.call(rbind, x)
# write to csv
write.csv(y, 'test.csv', row.names=FALSE)
这确实假设所有data.frame对象具有相同的列名。
答案 1 :(得分:1)
在此处使用iris
数据集并创建示例数据框df
。使用xlsx
包的write.xlsx
函数和参数append=TRUE
。您可以根据自己的要求将row.names
和col.names
等同于FALSE
或TRUE
。保持file
参数相同。
library(xlsx)
df <- data.frame(a=1:10,b=11:20,c=21:30)
write.xlsx(iris$Species, file="filename.xlsx", sheetName="Data1",row.names=F, col.names=F)
write.xlsx(iris$Sepal.Length, file="filename.xlsx", sheetName="Data2",row.names=F, col.names=F,append=TRUE)
write.xlsx(iris$Petal.Length, file="filename.xlsx", sheetName="Data3",row.names=F, col.names=F, append=TRUE)
write.xlsx(df, file="filename.xlsx", sheetName="Data4",row.names=F, col.names=T, append=TRUE)
在R的当前工作目录中创建的名为filename.xlsx
的文件中,每个输出将有四张不同的数据。