【问题标题】:R / Excel : leading zeroesR / Excel:前导零
【发布时间】:2014-06-04 16:49:48
【问题描述】:

我正在尝试使用 xlsxXLConnect 包将 Excel 2010 工作簿文件中的工作表读入 R。尽管将工作表中的单元格格式化为“文本”,但两者都在邮政编码列上删除了前导零。

wb <- loadWorkbook('c:/~/file1.xlsx')
sheetNames <- getSheets(wb)

for(i in 1:length(sheetNames)){  # i = 2
    #dat1 <- read.xlsx('c:/~/file1.xlsx', sheetNames[i], as.data.frame = T)
    dat1 <-  readWorksheetFromFile('c:/~/file1.xlsx', sheetNames[i])
}

有人对如何处理这个问题有建议吗?

【问题讨论】:

  • 尝试指定参数colTypes。见?readWorksheet
  • @Andrie :谢谢,添加 'colType = "character"' 完成了这项工作。
  • @Andrie 您能否将您的回复作为答案发布,以便 screechOwl 可以接受。

标签: r excel formatting


【解决方案1】:

您可以使用参数colType = ... 将列类型指定为readWorksheet()readWorksheetFromFile() 的参数。

例如,要将所有列读取为字符,请使用:

readWorkSheet(..., colType="character")

【讨论】:

    【解决方案2】:

    您也可以在之后使用 sprintf 解决此问题:

    # some example data
    x <- c(225,4867,52,15732,9514,78142)
    # getting the leading zeros back
    x <- sprintf("%05s", x)
    
    > x
    [1] "00225" "04867" "00052" "15732" "09514" "78142"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-19
      • 2015-03-04
      • 1970-01-01
      • 2013-09-22
      • 2014-09-01
      相关资源
      最近更新 更多