Макросы для связки Calc с программой R Statistics

Автор PVOzerski, 7 ноября 2016, 17:20

0 Пользователи и 1 гость просматривают эту тему.

PVOzerski

Я недавно написал на встроенном в LibreOffice бэйсике для своих нужд набор макросов, позволяющих в относительно гибком режиме вызывать статистическую обработку данных из электронной таблицы средствами мощного статистического пакета R. По идее, надо бы оформить эту штуку как расширение, потестировать на предмет багов и кроссплатформенности и т.д. - но заниматься этим нет ни времени, ни сил. Готов выложить всё здесь для любого желающего при условии сохранения свободной лицензии (думаю, что это будет LGPL). Если есть интерес, выложу всё здесь же.

kompilainenn

может стоит написать об этом разработчикам Либры? Или создать проект на гитхабе? Выложить здесь - это значит просто выложить без какого-то дальнейшего движения.

Цитата: PVOzerski от  7 ноября 2016, 15:20но заниматься этим нет ни времени, ни сил
а тут у всех так, вы не одиноки =)
Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут

Yakov

Думаю, для начала выложить на этом форуме.
Ну и самое главное, определиться с лицензией!
А уже дальше можно помещать и на extensions.libreoffice.org...

PVOzerski

В общем, выкладываю здесь:

JohnSUN

Ну что, аккуратненький код, приятно смотреть. Кое-что кое-где, конечно, можно было бы и упростить...
Ну, например, длинную цепочку "if SampleCount = 1 then ...  elseif SampleCount = 2 ..." можно было бы записать через Select Case
Преобразование слэшей можно было бы сделать не в цикле, а просто Join(Split(Path,"/"),"\"). Для преобразования URL'ов лучше бы пользоваться встроенными функциями ConvertToURL/ConvertFromURL и всё такое прочее. Но всё равно душевненько сделано, одобрям-с!
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

PVOzerski

Дык я с бэйсиком всерьез лет 20 не связывался (не считая совсем простых макросов вроде исправлялки набранного не в той раскладке текста для writer) - поэтому о существовании join просто не подозревал :) Кстати, о слэшах: windows-специфичный код писался "вслепую", без реальной проверки работоспособности. Если оно-таки заработано, как задумано, то я рад.

JohnSUN

Цитата: PVOzerski от  7 ноября 2016, 23:42
Если оно-таки заработано, как задумано, то я рад.
"А это пока неизвестно..." (с) старый анекдот про наручные часы
Запускать даже не пробовал - только глазами смотрел. И, скорее всего, и запускать не буду - R себе никогда не ставил, нужды не было. Статистика всегда казалась мне страшно скучным предметом (с преподами не везло, наверное): пока речь о вероятности прихода флеш-рояля к королю с десяткой - еще боль-мень интересно, это хотя бы наглядно... А вот когда на основании сравнения каких-то совершенно нелепых чисел типа 11,0704976935 и 13,388222599 тебе вдруг объявляют, мол, вероятность ошибки равна 5%, кости меченные - тут уже всё, капец. Ступор. Кто посчитал эти числа, что они доказывают? Кости хорошие - сам делал! То ли в объяснениях какое-то звено (или несколько) вечно пропускают, то ли вся эта кутерьма с подсчетами чистой воды шарлатанство типа алхимии или нумерологии, то ли я туповат...
Ну правда, как это можно читать и при этом ещё и понимать? Слова насчет "ожидаемое значение для указанного количества очков для n бросков равно n" загоняют в ступор... А! Тут после запятой еще есть - "умноженное на 1/6"... Тьфу на вас... То есть просто "делим количество попыток на количество граней кубика"?.. Да, точно, здесь дальше так и написано "т. е. 1020/6 = 170"! Ха, да я еще не совсем дурак! И что там дальше? "...формула возвращает хи-квадрат, равный 13,27" Бумц!.. Нет, все-таки совсем дурак... КАКАЯ ФОРМУЛА?!!
Предполагается, что такая справка может кому-нибудь помочь
А насчет шарлатанства - это здесь (стр.34, последний абзац):
Выбор конкретных методов оценки проектных рисков зависит от многих параметров: бла-бла-бла, бла-бла-бла ... наличия у экспертов и специалистов соответствующего опыта и знаний, программного обеспечения, полноты и достоверности информации по проекту...
Та-даммм!!! Или, скорее, "ты-дыщь..." Если прогноз не оправдался, заказчик считает, что "эксперты и специалисты просто лохи", а исполнители - что "эх, немного программ хороших не хватило и заказчик всей правды не сказал.."
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

tagezi

Цитата: JohnSUN от  8 ноября 2016, 06:24Предполагается, что такая справка может кому-нибудь помочь
Я в прошлом году пытался справку править, Оливер, не смотря на то что он прекрасный человек, говорил: "Это не учебник по алгебре или статистике и в английском это можно сказать короче." и резал всё на корню, оставляя какой-то бред сивой кобылы, сочетания буков иногда похожих на умные слова. Переводчик, естественно не будучи специалистом в данной области, переводя этот бред, загоняет его ещё дальше в сивую кобылу, причем не спереди. Так что мы имеем, то что имеем.
(x86_64) Kubuntu 16.04.3 - LibreOffice 6.0.2 / 6.1 alpha

rami

Цитата: tagezi от  8 ноября 2016, 14:07Я в прошлом году пытался справку править, Оливер, не смотря на то что он прекрасный человек, говорил: "Это не учебник по алгебре или статистике и в английском это можно сказать короче."
В принципе он прав, Справка должна объяснять как пользоваться Офисом, какие параметры у формул и т.д., а не учить математике, статистике и т.д.

tagezi

Цитата: rami от  8 ноября 2016, 13:19В принципе он прав, Справка должна объяснять как пользоваться Офисом, какие параметры у формул и т.д., а не учить математике, статистике и т.д.
Да, это не должен быть учебник, но должны быть нормальные объяснения как работает формула и адекватные примеры, а то что у нас: есть пример, нет примера, смысл от этого не меняется, всё равно не понятно.
Вот пример, от пересечения у меня крыша поехала. Пересечение, это диапазон с одинаковыми значениями, но в данном случае, имеется ввиду физическое пересечение строк и столбцов. Почему было не сказать, что пересечение строк и столбцов.
От туда же, про тильду, не указано что не будет работать при валидации. И естественно нет пример, потому что типа и так всем понятно.

Другой пример. Не, конечно, сильно напрягшись я в словах пересечение с осью y могу угадать, что в данном месте говориться о точке пересечения линии регрессии с осью y. Где блин там это сказано, какой метод они используют, делают ли они аппроксимацию если регрессия не линейная? о_О
Скажите мне где мне купить шар, чтобы видеть тоже что видите вы, но не вижу я.
(x86_64) Kubuntu 16.04.3 - LibreOffice 6.0.2 / 6.1 alpha

JohnSUN

#10
А да, это там где "Используются следующие данные: =INTERCEPT(D3:D9;C3:C9) = 2,15."? Помню-помню...
Нет, Справка - это, конечно, поле не паханое.
Та функция, в которой про игральные кости рассказывалось, тоже хороша:
"CHISQ.INV.RT Возвращает значение... Синтаксис CHIINV(...)"  ???
В En-варианте еще более-менее нормально. А во всех (во всех, Карл!) переводах можно натолкнуться на что-то вроде
INV.CUAD.CHI - Sintaxis PRUEBA.CHI.INV(...) Ну, prueba, значит prueba - кому надо разберётся... или не разберётся...
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

rami

Цитата: tagezi от  8 ноября 2016, 14:53Пересечение, это диапазон с одинаковыми значениями, но в данном случае, имеется ввиду физическое пересечение строк и столбцов. Почему было не сказать, что пересечение строк и столбцов.
Пересечение диапазонов  — это диапазон, которому принадлежат ячейки, которые одновременно принадлежат всем данным диапазонам.
Цитата: tagezi от  8 ноября 2016, 14:53Не, конечно, сильно напрягшись я в словах пересечение с осью y могу угадать, что в данном месте говориться о точке пересечения линии регрессии с осью y. Где блин там это сказано, какой метод они используют, делают ли они аппроксимацию если регрессия не линейная?
В Офисах регрессия всегда линейная.
Цитата: JohnSUN от  8 ноября 2016, 15:56А да, это там где "Используются следующие данные: =INTERCEPT(D3:D9;C3:C9) = 2,15."? Помню-помню...
Нет, Справка - это, конечно, поле не паханое.
Скорее криво паханое. В Справке все статистические формулы собраны в одном разделе, в начале которого есть диапазон данных для примера. На сайте help.libreoffice.org статистические функции разбиты на пять частей, а диапазон для примера находится отдельно и нет ни каких ссылок на него. Вот когда будет ссылка на исходный диапазон, не нужно будет помнить. Нo вообще у меня такое впечатление, что справку писал Google O0.

tagezi

Цитата: rami от  8 ноября 2016, 15:40Пересечение диапазонов  — это диапазон, которому принадлежат ячейки, которые одновременно принадлежат всем данным диапазонам.
Вот давай не будем говорит языком 5 летних детей: "Кто такая мама?" " Мама - это мама, приходит и сказки читает.", "А кто такой папа?" "Папа - это папа, он приходит с ремнём и ругает." Диапазон пересечения - может быть и массивом значений, и множеством и чем угодно, пока не объяснено что с чем пересекается. Из справки непонятно ни разу этого. Я (да и не только я), например, с полным основанием посчитали что это пересечение множеств, и долго не недоумевали, с какого фига оно не работает.

Цитата: rami от  8 ноября 2016, 18:40В Офисах регрессия всегда линейная.
Ага, и считается методом наименьших квадратов... И где это написано? С чего я должен взять, что у них именно линейная регрессия? А ты уверен, что она линейная... Например, на диаграммах я могу задать не линейную регрессию. А почему интересно в этом случае она В Офисах регрессия всегда линейная?
(x86_64) Kubuntu 16.04.3 - LibreOffice 6.0.2 / 6.1 alpha

JohnSUN

Да ладно вам, завелись горячие парни... Вон уже девять раз употребили слово "регрессия", а здесь дамы бывают... Упс! И я десятый раз его произнёс... Давайте не замыливать эту тему, а то что-то в сторону отъехали.
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

tagezi

Цитата: JohnSUN от  8 ноября 2016, 16:37что-то в сторону отъехали
Ну да. Но в данном случае нужен человек, который возьмётся, допилит и выложит. Так как автор, как я понимаю, не имеет на это время. Хотя, было расширение, которое делало всю рутинную работу по созданию служебных файлов для расширения, и туда можно было запихать даже макрос, и потом распространять как расширение. Можно воспользоваться им, написать онли Линух, виндос бета, и попробовать его пропихнуть.
В научных кругах может стать популярным, я вижу статьи где ЛО используется как пред и пост обработка результатов в статистике, а в промежутке R и питон.
(x86_64) Kubuntu 16.04.3 - LibreOffice 6.0.2 / 6.1 alpha