我正在使用sink()
函数将R输出打印到excel / text文件。我的程序输出太大了。我在Excel /文本输出文件的末尾发现了一条消息
[ reached getOption("max.print") -- omitted 5326 rows ]
此外,我还有多个大输出要打印。我也希望它们在一个excel文件的单独(不同)工作表上。
实际上,输出是以矩阵形式出现的,随着循环值的增加,方阵的行和列也会增加。由于行数和列数不同,函数append
不起作用。为避免此错误,我使用if
条件并使用rbind
单独处理类似的矩阵。但是通过双循环有超过5千次迭代(并且该方法也重复),因此不可能编写1000个if
和rbind
条件并将它们保存到单独的工作表和文件中。
答案 0 :(得分:11)
如果您不想要csv
,则可以使用包xlsx
,并且可以很容易地保存多张纸,例如
df1 <- data.frame(x=1:100, y=1:100) # make data
df2 <- data.frame(x=1:1000, y=1:1000)
library(xlsx)
wb <- createWorkbook() # create blank workbook
sheet1 <- createSheet(wb, sheetName="mysheet1") # create different sheets
sheet2 <- createSheet(wb, sheetName="mysheet2")
addDataFrame(df1, sheet1) # add data to the sheets
addDataFrame(df2, sheet2)
saveWorkbook(wb, "mysheets.xlsx") # write the file with multiple sheets
答案 1 :(得分:5)
您可以将数据框写入csv文件,然后使用write.csv
在Excel中打开它(使用?write.csv
阅读其文档):
## To write a CSV file for input to Excel one might use
x <- data.frame(a = I("a \" quote"), b = pi)
write.table(x, file = "foo.csv", sep = ",", col.names = NA,
qmethod = "double")