R. 将列表导出到 Excel 中的单个 sheet
R. Exporting a list to a single sheet in Excel
我想将不同大小的对象列表导出到单个 Excel sheet。换句话说,我希望显示一个矩阵,然后在其下方显示下一个矩阵。这是一个使用 XLConnect 的简单示例:
mat1<-matrix(c(0,1,2,3),nrow=2,ncol=2)
mat2<-matrix(c(0,1,2,3,4,5),nrow=2,ncol=3)
list<-list(mat1,mat2)
wb<-loadWorkbook("XLConnectExample1.xlsx",creat=TRUE)
createSheet(wb,name="sheet")
writeWorksheet(wb,list,sheet="sheet")
saveWorkbook(wb)
现在,mat1 只是简单地写在 mat2 的上面。
我对 XLConnect
不太熟悉,但这里有一个使用 xlsx
包的方法。关键是跟踪已写入工作表的矩阵所占用的累计行数,以免覆盖它们。
library(xlsx)
# Fake data
mat1<-matrix(c(0,1,2,3),nrow=2,ncol=2)
mat2<-matrix(c(0,1,2,3,4,5),nrow=2,ncol=3)
mat3 = matrix(1:8, nrow=4)
mat.list<-list(mat1,mat2,mat3)
在该工作簿中创建工作簿和工作表:
wb = createWorkbook()
sheet = createSheet(wb, "data")
写下每个矩阵,一个在另一个下面,跳过中间的一行。 r
是一个行计数器,我们用它来确定放置每个连续矩阵的起始行。
r = 1
for (i in 1:length(mat.list)) {
addDataFrame(mat.list[[i]], sheet, col.names=FALSE, row.names=FALSE, startRow=r)
r = r + nrow(mat.list[[i]]) + 1
}
saveWorkbook(wb, "test.xlsx")
这是生成的 Excel 工作表的屏幕截图:
我想将不同大小的对象列表导出到单个 Excel sheet。换句话说,我希望显示一个矩阵,然后在其下方显示下一个矩阵。这是一个使用 XLConnect 的简单示例:
mat1<-matrix(c(0,1,2,3),nrow=2,ncol=2)
mat2<-matrix(c(0,1,2,3,4,5),nrow=2,ncol=3)
list<-list(mat1,mat2)
wb<-loadWorkbook("XLConnectExample1.xlsx",creat=TRUE)
createSheet(wb,name="sheet")
writeWorksheet(wb,list,sheet="sheet")
saveWorkbook(wb)
现在,mat1 只是简单地写在 mat2 的上面。
我对 XLConnect
不太熟悉,但这里有一个使用 xlsx
包的方法。关键是跟踪已写入工作表的矩阵所占用的累计行数,以免覆盖它们。
library(xlsx)
# Fake data
mat1<-matrix(c(0,1,2,3),nrow=2,ncol=2)
mat2<-matrix(c(0,1,2,3,4,5),nrow=2,ncol=3)
mat3 = matrix(1:8, nrow=4)
mat.list<-list(mat1,mat2,mat3)
在该工作簿中创建工作簿和工作表:
wb = createWorkbook()
sheet = createSheet(wb, "data")
写下每个矩阵,一个在另一个下面,跳过中间的一行。 r
是一个行计数器,我们用它来确定放置每个连续矩阵的起始行。
r = 1
for (i in 1:length(mat.list)) {
addDataFrame(mat.list[[i]], sheet, col.names=FALSE, row.names=FALSE, startRow=r)
r = r + nrow(mat.list[[i]]) + 1
}
saveWorkbook(wb, "test.xlsx")
这是生成的 Excel 工作表的屏幕截图: