我正在使用 ROBDC 将 Excel 工作表读入 R。但是,我遇到了一些奇怪的结果。有时,重新启动 R 控制台会有所帮助,但我现在尝试了 3 次,并且以下错误(?)仍然存在。
Excel 工作表包含数字块,我想将其读入数组。
这是我的 sqlQuery:
channel <- odbcConnectExcel(paste("~link to file~"))
as.matrix(sqlQuery(channel,paste("select F13,F14,F15 from \"",land,i,"$\"",sep="")))
这是(部分)结果:
32 NA NA NA
33 NA NA "Pf7"
34 "2.079975e+02" "6.762166e+01" NA
35 "1.721265e+02" "5.595971e+01" NA
36 "1.373673e+02" "4.465921e+01" NA
37 "1.200835e+02" "3.904013e+01" NA
38 "1.411489e+02" "4.588864e+01" NA
39 NA NA NA
40 NA NA NA
41 NA NA NA
42 NA NA "Pf7"
43 "1.443768e+00" "4.693807e-01" NA
44 "1.194778e+00" "3.884318e-01" NA
45 "9.535044e-01" "3.099920e-01" NA
46 "8.335332e-01" "2.709883e-01" NA
47 "9.797535e-01" "3.185257e-01" NA
48 NA NA NA
49 NA NA NA
在 Excel 表中,每个数字块前面都有 Pf5:Pf7,每个描述 Pf5:Pf7 后面都有 5 个数字。所有单元格都格式化为数字。Excel 表格可在此处下载。
在 F13 和 F14 列中,RODBC 删除了描述(这很奇怪,但对我来说很好),在 F15 列中它删除了数字(这对我来说根本不好!)
奇怪的是,昨天完全相同的代码工作得很好,而且我没有更新任何 R 文件或以任何方式更改 Excel 表,所以我对可能导致错误的原因感到困惑。
我很感激任何可能有帮助的评论。
谢谢,马丁
更新:我尝试使用 odbcConnectExcel2007 而不是 odbcConnectExcel,结果如下:
22 NA NA NA
23 NA NA NA
24 NA NA "Pf7"
25 "7.730711e+01" "1.958429e+01" "12,638675305"
26 "4.126044e+01" "1.045255e+01" "6,7455279987"
27 "4.293419e+01" "1.087656e+01" "7,0191635751"
28 "4.278764e+01" "1.083944e+01" "6,9952057822"
29 "4.073317e+01" "1.031897e+01" "6,6593269202"
30 NA NA NA
31 NA NA NA
32 NA NA NA
33 NA NA "Pf7"
34 "9.001111e+01" "2.280260e+01" "14,715610176"
35 "4.804083e+01" "1.217023e+01" "7,854032014"
36 "4.998963e+01" "1.266392e+01" "8,1726345871"
37 "4.981901e+01" "1.262070e+01" "8,1447397695"
38 "4.742692e+01" "1.201471e+01" "7,7536653665"
39 NA NA NA
40 NA NA NA
“,”而不是“。” 可能是我使用德文版 Excel 造成的。我可以使用 sub() 来替换逗号,但这 (1) 不是一个优雅的解决方案,并且 (2) 没有解释为什么它适用于前两个列而不适用于第三个列。(也不是为什么它昨天有效但今天无效......)