0

大家好,我在尝试使用 RODBC 包在 R 中读取这样的 excel 文件时遇到问题:

c1   c2   c3
A    123  08
B    12   09
C    111  07
D    111  08

我用来读取具有该结构的 excel 文件的代码是:

library(RODBC)
Base="R04.xlsx"
conexion=odbcConnectExcel2007(Base)
Data=sqlQuery(channel=conexion,"select * from [Hoja1$]",as.is=TRUE)
close(conexion)

但我在 R 中得到了这个:

c1   c2   c3
A    123  8
B    12   9
C    111  7
D    111  8

事实是c3一个代码,我需要前面的零。当我保存文件并在 excel 中打开时也会发生同样的情况,零已经消失。我如何在 R 和 RODBC 包中做到这一点。有可能的。谢谢。

4

2 回答 2

0

您必须强制列是字符,而不是数字,因为后者将被读入数字或整数类型,显示时不带前导零。

您可以在事后更改它:

R> sprintf("%02d", c(8,9,7,8))
[1] "08" "09" "07" "08"
R> 
于 2013-09-13T02:23:08.010 回答
0

您需要将 c3 列中的单元格格式化为文本而不是数字。选择单元格,然后右键单击“设置单元格格式”,选择“文本”,然后确定。然后您可能需要重新编辑单元格以添加前导 0 并重新保存文件。

之后你的 R 代码工作,我只是测试了它:

> sqlQuery(channel=conn,"select * from [Sheet1$]", as.is=TRUE)
  c1  c2 c3
1  A 123 08
2  B  12 09
3  C 111 07
4  D 111 08
于 2013-09-13T03:19:12.707 回答