R / Excel:领先的零

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

 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]) } 

有没有人有如何处理这个问题的build议?

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

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

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

您也可以使用sprintf修复此问题:

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