Я читаю листы Excel в R, используя ROBDC. Однако я столкнулся с некоторыми странными результатами. Иногда перезапуск консоли 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, поэтому я озадачен тем, что может вызвать ошибку.
Я благодарен за любые комментарии, которые могут помочь.
Спасибо,
Martin
UPDATE:
Я попытался использовать 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) не объясняет, почему оно работает с первыми двумя столбцами, но не с третьим. (А также не почему это работало вчера, но не сегодня ...)