当使用包xlsx导出到excel时,以文本forms存储的数字

我正在使用R3.1.1和xlsx软件包。 我也使用Excel 2007软件。 当我有一个大的数据框,数据被导出为文本的excel。 我曾尝试使用wb = set_optimization()没有任何运气。 例如,如果我使用这个数据框:

size1<-rnorm(100,5000,2000) size2<-rnorm(100,5000,2000) size3<-rnorm(100,5000,2000) name1<-paste("RNORM",seq(1,100,1), sep<-"") fold1<-rnorm(100,4,2) fold2<-rnorm(100,3,1) fold3<-rnorm(100,2,0.5) N1<-sample(18:36,100, replace <- TRUE) df<-cbind(name1,N1,size1,size2,size3,fold1,fold2,fold3) wb <- createWorkbook() sheet.1 <- createSheet(wb, sheetName="test1") sheet.2 <- createSheet(wb, sheetName="test2") addDataFrame(df, sheet=sheet.1, row.names=FALSE, startRow = 1, startColumn = 1) addDataFrame(df, sheet=sheet.2, row.names=FALSE, startRow = 1, startColumn = 1) saveWorkbook(wb, "testing1.xlsx") 

所有的数字都以文本forms存储在Excel工作簿中。 我如何删除这个编码,使最终文件更容易阅读?

当你在一组vector上使用cbind时,它返回一个matrix。 由于matrix只是一个二维向量,所有的值必须是相同的types。

由于name1向量是一个字符向量,所有其他向量也被强制转换为符合这个约束的字符。

为了得到预期的结果,你可以使用data.frame来代替:

 df <- data.frame(name1, N1, size1, size2, size3, fold1, fold2, fold3) wb <- createWorkbook() sheet.1 <- createSheet(wb, sheetName = "test1") sheet.2 <- createSheet(wb, sheetName = "test2") addDataFrame(df, sheet = sheet.1, row.names = FALSE, startRow = 1, startColumn = 1) addDataFrame(df, sheet = sheet.2, row.names = FALSE, startRow = 1, startColumn = 1) saveWorkbook(wb, "testing1.xlsx")