【发布时间】:2012-02-22 04:21:29
【问题描述】:
RODBC 是 R 中用于将数据从数据库导入 R 的主要库。RODBC 似乎能够“猜测”列的数据类型,我觉得这特别烦人。
我已经上传了一个文件test.xlshere,或者你可以自己创建一个xls文件:
- 创建 2 列,第一列名为
col_a,第二列名为col_b。 - 在
col_a中输入您喜欢的任何内容,我在此列上输入了 92 行的字母 - 在 col_b 的第 92 行,在那里输入一个数字,我输入了“1923”而不更改数据类型(即不使用
') - 尝试使用以下脚本将 xls 文件导入 R:
library(RODBC)
setwd("C:/Users/hke775/Documents/Enoch/MISC/R_problems/RODBC")
channel <- odbcConnectExcel("test.xls",readOnly=TRUE)
dummy.df <- sqlFetch(channel,"Sheet1")
odbcClose(channel)
你会看到dummy.df,col_b全是NA,这个专栏里的1923不见了。
如果你想再次看到1923,你可以把col_b的第一行改成一个数字,它又回来了。
这很烦人,因为我不喜欢手动修改数据。我需要使用其他包进行 xls 导入,但我找不到其他包像RODBC 那样流畅(我试过gdata 和xlsReadWrite)。
我是否遗漏了sqlFetch 命令中的任何内容并导致了问题?谢谢。
【问题讨论】:
-
你确定你试过 gdata 吗?当我使用
DF <- read.xls("test.xls")使用 gdata 包尝试您的测试文件时,它起作用了。1923在场。 -
Gdata 需要有 perl,我不能在我的办公室安装它
-
如果权力可以安装 R 那么他们也应该安装 Rtools 发行版,因为这是 R 开发所必需的并且其中包含 perl:cran.r-project.org/bin/windows/Rtools
-
所以我的问题被认为是
RODBC的错误? -
这可能是 ODBC 驱动程序而不是 RODBC 本身的问题。