169 похожих чатов

Други, доброго времени. Чтобы быть в тренде, тоже попрошу помощи

«с объяснениями и подробно» (с)

Я химик. Мы с коллегами написали статью, обработку данных для которой (в основном разные спектральные кривые) я сделал в R. Решил выложить сырые данные и скрипт обработки на гитхабе.

Сразу скажу, ничего особенного ни в данных, ни в скрипте нет. Данные простые, скрипт тоже примитивный. Не думаю, что кто-то будет повторять этот анализ или использовать для себя. Мой опыт в R минимален, но я написал его за пару дней от импорта до генерации картинок, с перерывами на другие дела. Так что выложил не из-за эксклюзива и не для славы, а для себя на память, ну и чтобы добавить доверия к нашим результатам.

Скрипт небольшой, строк на 500 с комментами. Отрабатывает на ноуте за 30-40 секунд от импорта до картинок. В перспективе аналогичные данные будут больше, но в разы, а не на порядки, так что скорость устраивает. При написании старался в первую очередь писать понятно для себя. Сроки подготовки были жесткие, в приоритете была скорость получения финальных картинок, а не красота, к сожалению.

Чего хочется?

1) «Высокоуровневой» критики оформления (особенно ценно мнение тех, кто аналогично выкладывал данные для статей). Какие еще нужны подробности в readme? Нужны ли дополнительно комментарии в скрипте или он и так очевидный? Стоит ли делить его на куски (импорт/процессинг/графика) или при таком объеме и так норм? Хорошая ли практика рисовать графики (они многие похожи, различия в данных) каждый своим отдельным ггплотом (так удобнее тюнить мелочи вроде бы) или лучше сделать обертки для однотипных графиков (переиспользование кода типа)?

2) «Низкоуровневых» придирок. Как я сказал, меня скорость скрипта устраивает. Но наверняка есть что-то типа «окей, оно работает, но так писать не надо ни в коем случае, точно будут проблемы». Наверняка есть что-то написанное через одно место (я даже догадываюсь, что, но интересен и независимый взгляд). В общем, самое вопиющее что надо учесть в будущем при анализе аналогичных данных.

3) В целом буду рад любым замечаниям и предложениям. В этом куске руки уже связаны тем, что статья в редакции, но работа на этом не закончена. Даже «все хрень, переписать с начала» (с) - тоже будет полезный взгляд :)

Собсно, вот. Данные и скрипт с минимальным вводным описанием тут: https://github.com/eukarr/urea_physchem
Могу, если кто всерьез заинтересуется, скинуть и статью (там страниц 16 с картинками) в личку. Т.к. статья еще на рецензии в редакции, не уверен, что могу ее светить публично. Готов опять же заинтересовавшимся критикам пояснить что-то словами - могу здесь, могу тоже в личке, как админы скажут.

В любом случае, даже если не найдется времени и желания, спасибо чату за все ценное, что тут нахожу!

3 ответов

23 просмотра

добавьте а) версии всех пакетов и ос, б) лицензию -- без нее никто не имеет права использовать Ваш код

Я не имею права критиковать код на R, потому что в языке уж очень плохо разбираюсь, но должен сказать, я ваш читаю и мне все понятно! (А это редкость, особенно в случае с R, обычно я скриплю зубами и матюкаю авторов)

Ілія Малекі
Я не имею права критиковать код на R, потому что в...

Профессионалы на R специально пишут непонятно, чтобы своё рабочее место защитить))

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
Карта сайта