【问题标题】:numbers stored as text when exporting to excel using package xlsx使用包 xlsx 导出到 excel 时存储为文本的数字
【发布时间】:2014-07-25 21:43:39
【问题描述】:

我正在使用 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")

所有数字都以文本形式存储在 Excel 工作簿中。如何删除此编码以使最终文件更易于阅读?

【问题讨论】:

    标签: excel xlsx


    【解决方案1】:

    当您在一组向量上使用cbind 时,它会返回一个矩阵。由于矩阵只是一个二维向量,因此所有值必须是同一类型。

    由于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")
    

    【讨论】:

      猜你喜欢
      • 2016-01-27
      • 1970-01-01
      • 2018-07-18
      • 1970-01-01
      • 1970-01-01
      • 2015-09-27
      • 2019-05-24
      • 1970-01-01
      相关资源
      最近更新 更多