Excel XML прочитать в R - страница 2

 
Aleksey Nikolayev:

Просто хочется заниматься анализом данных, а не программированием) Эти два занятия различаются между собой сильнее чем трейдинг от инвестирования)

Ну анализ данных без знания синтаксиса языка или методов библы, как то не логично ))
Не так ли?
Мне тоже хотелось заниматься алго-трейдингом, а в итоге пришлось выучить ЯП, и не один ))

 
Roman:

Ну анализ данных без знания синтаксиса языка, как то не логично ))
Не так ли?
Мне тоже хотелось заниматься алго-трейдингом, а в итоге пришлось выучить ЯП, и не один ))

Программирование в анализе данных - это как смертельный приём кунгфу, который должен использоваться только когда это неизбежно) Чрезмерное его использование говорит о недостатке знаний и часто приводит к неприятным ошибкам.

В данном случае, программирования удалось пока избежать используя онлайн-конвертор xml -> xlsx, но в дальнейшем придётся им заняться (по-видимому, используя библиотеку fxsaber'а для работы с opt файлами)

 
Aleksey Nikolayev:

Программирование в анализе данных - это как смертельный приём кунгфу, который должен использоваться только когда это неизбежно) Чрезмерное его использование говорит о недостатке знаний и часто приводит к неприятным ошибкам.

В данном случае, программирования удалось пока избежать используя онлайн-конвертор xml -> xlsx, но в дальнейшем придётся им заняться (по-видимому, используя библиотеку fxsaber'а для работы с opt файлами)

У меня иное мнение. Достаток знаний, исключает возможные неприятные ошибки.
Ну выбор всегда за вами, в методе решения.
Но честно не понимаю, зачем идти через костыли, если есть готовая библа в R. 

 
Roman:

Но честно не понимаю, зачем идти через костыли, если есть готовая библа в R. 

Нет проблемы в том, чтобы распарсить конкретный файл (как это сделал индус). Проблема в том, чтобы парсер без ошибок справлялся с любым документом из некоторого класса с учётом того, что формат записи этого класса может меняться со временем.

Ещё, конечно, проблема в моей лени и нелюбви к писанию кода)

 
Aleksey Nikolayev:

Нет проблемы в том, чтобы распарсить конкретный файл (как это сделал индус).
Проблема в том, чтобы парсер без ошибок справлялся с любым документом из некоторого класса с учётом того, что формат записи этого класса может меняться со временем.

Ещё, конечно, проблема в моей лени и нелюбви к писанию кода)

Вот вам рекомендация, которую я когда то тоже получил в своё время.
Решайте проблему по мере её возникновения.
То есть на данном этапе, вам нужно распарсить файл и получить данные.
На этом этапе библа справляется. Когда возникнет потребность с форматом, тогда и будете уже искать решение относительно формата.
Но если я правильно понял предполагаемую проблему, то парсер же по тегам парсит. И если изменится формат, то просто подправить код под новый формат записи, по тем же тегам.
Или продумать алгоритм парсера, который на основе тегов будет парсить любой формат записи.
По моему я правильно понял суть, пока не существующей проблемы.

 
Roman:

Вот вам рекомендация, которую я когда тоже получил в своё время.
Решайте проблему по мере её возникновения.
То есть на данном этапе, вам нужно распарсить файл и получить данные.
На этом этапе библа справляется. Когда возникнет потребность с форматом, тогда и будете уже искать решение относительно формата.

Спасибо, так и сделаю.

 

Ежели вдруг кому-нибудь интересно:

library(xml2)
rws <- xml_children(xml_children(xml_children(read_xml("optimisation_report.xml"))[3]))
nms <- xml_text(xml_children(rws[1]))
nr <- length(rws) - 1; nc <- length(nms)
df <- as.data.frame(matrix(0, nrow = nr, ncol = nc))
colnames(df) <- nms
for (i in 1:nr) df[i,] <- as.double(xml_text(xml_children(rws[i + 1])))

df$`Sharpe Ratio`[1:5]

результат:

[1] 0.873215 0.829501 0.709948 0.619641 0.589514

 
навскидку пакеты - xlsx, openxlsx, readxl, writexl. Ни один не проверял так как exel не пользовал совсем.
 
Vladimir Perervenko:
навскидку пакеты - xlsx, openxlsx, readxl, writexl. Ни один не проверял так как exel не пользовал совсем.

Они для файлов типа .XLS(X), а нужно для EXCEL .XML