#intro
Привет, это Толя Цыпленков. Буду писать про науку, карьеру, программирование, книги, статьи, неудачи на работе и прочие интересности.
Все самое интересное — на гитхабе, так же иногда
на английском буду анонсировать в LinkedIn и Мастодон, а на русском — тут.
Привет, это Толя Цыпленков. Буду писать про науку, карьеру, программирование, книги, статьи, неудачи на работе и прочие интересности.
Все самое интересное — на гитхабе, так же иногда
на английском буду анонсировать в LinkedIn и Мастодон, а на русском — тут.
GitHub
atsyplenkov - Overview
Scientist-Geomorphologist and Research Software Engineer, fond of all things geospatial - atsyplenkov
🤩10
#intro
Почему типизированный и что ждать в канале
Вообще "Типизированный R" — это каламбур, так как язык R славится своей динамической типизацией (типа "на словах ты целое число, а не деле строка"), и многими рассматривается только как статистический инструмент. Я хочу доказать обратное.
Мои интересы вертятся не только вокруг R, поэтому на канале еще будет про:
- геопространственный анализ #geospatial
- науку #science
- карьеру #career
- жизнь в Новой Зеландии #nz
Почему типизированный и что ждать в канале
Вообще "Типизированный R" — это каламбур, так как язык R славится своей динамической типизацией (типа "на словах ты целое число, а не деле строка"), и многими рассматривается только как статистический инструмент. Я хочу доказать обратное.
Мои интересы вертятся не только вокруг R, поэтому на канале еще будет про:
- геопространственный анализ #geospatial
- науку #science
- карьеру #career
- жизнь в Новой Зеландии #nz
🤩7
#rstats #python #geospatial
Кто является lingua franca пространственного анализа?
Сейчас пишу заявку на грант R Consortium и в обосновании проблемы исследования решил рассказать о том, что Python сейчас является де-факто главным языком для пространственного анализа. Поэтому R-сообществу нужно больше гео-пакетов 📦 и т. д.
Полез проверять эту гипотезу и оказалось, что аналитики на этот счёт очень мало! Да, есть глобальные тренды языков программирования, но без конкретики по областям. Наткнулся на API StackExchange и проверил количество вопросов, отмеченных тегами R или Python на gis.stackexchange.com за последние 10 лет.
Удивительно, но R, как оказалось, лидировал вплоть до середины 2024 года. А сейчас оба языка достигли определённого равновесия. Хотя после релиза ChatGPT 3.5 осенью 2022 мне кажется, что на Stack Exchange вообще никто не заходит и все эти оценки не показательные.
➡️ ➡️ ➡️
😀 код и данные
Кто является lingua franca пространственного анализа?
Сейчас пишу заявку на грант R Consortium и в обосновании проблемы исследования решил рассказать о том, что Python сейчас является де-факто главным языком для пространственного анализа. Поэтому R-сообществу нужно больше гео-пакетов 📦 и т. д.
Полез проверять эту гипотезу и оказалось, что аналитики на этот счёт очень мало! Да, есть глобальные тренды языков программирования, но без конкретики по областям. Наткнулся на API StackExchange и проверил количество вопросов, отмеченных тегами R или Python на gis.stackexchange.com за последние 10 лет.
Удивительно, но R, как оказалось, лидировал вплоть до середины 2024 года. А сейчас оба языка достигли определённого равновесия. Хотя после релиза ChatGPT 3.5 осенью 2022 мне кажется, что на Stack Exchange вообще никто не заходит и все эти оценки не показательные.
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡9
This media is not supported in your browser
VIEW IN TELEGRAM
#rstats
Ода rig
Все никак не могу нарадоваться rig, менеджеру версий R, хоть релиз его уже был год назад.
Наверное, главная его особенность в возможности установки разных версий R, но для меня, преданного фаната Debian👩💻 , его преимущество — отсутствие головой боли с установкой зависимостей, ключей и того, что версия
Вы только посмотрите, как быстро он ставит свежий
Запустить RStudio с определенной версией:
Запустить RStudio с версией R, что прописана в файле
На windows rig еще к тому же поможет вам установить нужный
➡️ ➡️ ➡️
😀 r-lib/rig
Ода rig
Все никак не могу нарадоваться rig, менеджеру версий R, хоть релиз его уже был год назад.
Наверное, главная его особенность в возможности установки разных версий R, но для меня, преданного фаната Debian
r-base в apt все еще 4.2.2Вы только посмотрите, как быстро он ставит свежий
R 4.4.3 в одну короткую команду!rig add 4.4.3
Запустить RStudio с определенной версией:
rig rstudio 3.5.3
Запустить RStudio с версией R, что прописана в файле
renv.lock:rig rstudio <renv-lockfile>
На windows rig еще к тому же поможет вам установить нужный
rtools (нужный установится по умолчанию, а вообще можно любой).rig system rtools add
Please open Telegram to view this post
VIEW IN TELEGRAM
🤩7🤗2
#rstats #ggplot2
Фух, дописал заявку на грант R Consortium, отправил коллегам на ревью. Конечно пришлось помучаться с Quarto, так как шаблон написан в нем. Все-таки для меня этот инструмент для генерации .pdf/.docx пока еще очень неоднозначный. Дебаггинг шрифтов, размеров картинок, занимает уйму времени и каждый раз я задаю себе вопрос — стоит ли оно того?
Для составления диаграммы Ганта впервые воспользовался библиотекой
У них так же есть и веб версия, где можно сделать диаграмму из эксель, гугл шитс или csv — https://ganttrify.europeandatajournalism.eu/
➡️ ➡️ ➡️
😀 giocomai/ganttrify
Фух, дописал заявку на грант R Consortium, отправил коллегам на ревью. Конечно пришлось помучаться с Quarto, так как шаблон написан в нем. Все-таки для меня этот инструмент для генерации .pdf/.docx пока еще очень неоднозначный. Дебаггинг шрифтов, размеров картинок, занимает уйму времени и каждый раз я задаю себе вопрос — стоит ли оно того?
Для составления диаграммы Ганта впервые воспользовался библиотекой
{ganttrify}, и это что-то, что я могу рекомендовать! В принципе, даже с дефолтными параметрами получается неплохой результат. А на вход требуется всего лишь датафрейм с датами и названиями задач. ganttrify::ganttrify(
project = wbw_project,
spots = wbw_spots,
by_date = TRUE,
alpha_wp = 0,
exact_date = TRUE,
month_number_label = FALSE,
mark_quarters = TRUE,
project_start_date = "2025-05",
font_family = "Inter"
)
У них так же есть и веб версия, где можно сделать диаграмму из эксель, гугл шитс или csv — https://ganttrify.europeandatajournalism.eu/
Please open Telegram to view this post
VIEW IN TELEGRAM
🤩10🤗1
#python #rstats
Относительно недавно👩💻 Python
Например, есть классная библиотека
Помимо прочего,
➡️ ➡️ ➡️
🔗 ¹ Более серьёзный анализ, конечно, лучше проводить, полноценно написав на Python и обмениваясь между R и Python через
Относительно недавно
reticulate обновился и теперь поддерживает менеджер окружений uv . Очень удобно теперь вызывать какие-то небольшие зависимости, которые в R не реализованы, или реализованы хуже¹. Необходимо лишь вызвать py_require() перед импортом библиотеки.Например, есть классная библиотека
phik, которая позволяет произвести корреляционный анализ не только для числовых, но и для категориальных данных. Очень хороший инструмент для первичного знакомства с датасетом, так как может выявить взаимосвязь, даже если она нелинейна (Baak et al, 2020). Чтобы сделать базовый EDA с R-объектами:library(reticulate)
# объявляем зависимости Python
py_require("pandas")
py_require("phik")
# импортируем Py библиотеки как обычно
pd <- import("pandas")
phik <- import("phik")
# конвертируем R датафрейм в Py датафрейм
iris_py <- r_to_py(iris[, 3:5])
# делаем анализ
iris_py$phik_matrix() |>
py_to_r() |>
dplyr::as_tibble(rownames = "var")
> # A tibble: 3 × 4
> var Petal.Length Petal.Width Species
> <chr> <dbl> <dbl> <dbl>
> 1 Petal.Length 1 0.778 0.994
> 2 Petal.Width 0.778 1 0.951
> 3 Species 0.994 0.951 1
Помимо прочего,
uv теперь можно использовать ещё и во время разработки R-пакетов. Классный пример — vrtility, на мой взгляд, очень элегантно и бесшовно подтягивает numpy при загрузке. Больше не нужно мучиться с настройками conda и venv, которые были необходимы, когда, например, работаешь с rgee..parquet или другие форматы данных.Please open Telegram to view this post
VIEW IN TELEGRAM
Posit
Reticulate 1.41: Simplifying Python Installation and Package Management - Posit
Thanks to uv, Reticulate 1.41 introduces a simplified way to declare Python dependencies with `py_require()`.
🤩7
#rstats #cran
Отличный способ прокачать свои R-скиллы — это начать контрибьютить в опен-сорс проекты (это касается любого ЯП). Как автор нескольких библиотек и расширений, я уверяю вас, что в большинстве своём разработчики будут только рады вашему вкладу (см. скрин).
Я обычно выбираю библиотеки, с которыми более или менее знаком, и либо нахожу баг, который требует исправления, либо беру issue на гитхаб, которое кажется посильным. Но сегодня увидел ресурс cranhaven.org — там есть постоянно обновляемый список пакетов CRAN❤️ , которые находятся под угрозой архивации. По-моему, это прекрасное место, чтобы начать. У многих проектов там есть проблемы всего лишь с документацией или с зависимостями в
Например, для✅
Отличный способ прокачать свои R-скиллы — это начать контрибьютить в опен-сорс проекты (это касается любого ЯП). Как автор нескольких библиотек и расширений, я уверяю вас, что в большинстве своём разработчики будут только рады вашему вкладу (см. скрин).
Я обычно выбираю библиотеки, с которыми более или менее знаком, и либо нахожу баг, который требует исправления, либо беру issue на гитхаб, которое кажется посильным. Но сегодня увидел ресурс cranhaven.org — там есть постоянно обновляемый список пакетов CRAN
DESCRIPTION, поскольку CRAN недавно стал требовать указывать версию R ≥ 4.1, если используется встроенный пайп (ака |>).Например, для
repmis и treeClust требуется исправления ссылок в документации [1, 2], а в divvy немного поправить тесты [3]. Главное, чтобы R-CMD-Check был Please open Telegram to view this post
VIEW IN TELEGRAM
🤗9
#nz #science #python
Ох, хороший мем на злобу дня («Это я возвращаюсь к R после рискованной попытки покорения Python»).
У моих коллег недавно вышла библиотека🐍 с прекрасной задумкой — трансформация пространственных растров (спутниковых снимков, цифровых моделей рельефа и тд.) в дискретные глобальные сети (discrete global grid). На примере Uber H3 (гексагоны) они показали, как агрегируют и хранят данные в формате
Ну а дальше классическая ситуация большинства питон кода — он не запускается нигде кроме компьютера разработчиков😋 Если у кого-то получится поставить версию с PyPI — дайте мне знать пожалуйста))) Я в итоге так и не смог ничего установить, только вспомнил подкаст Подлодки #336, там тоже прожаривали питон за это. Гость предложил фанатскую теорию, что докер стал популярным во многом из-за того, что это единственны способ запустить питон код на другом устройстве 🖥 .
Хорошо, что в R есть CRAN❤️ . Он заставляет тебя написать тесты, доку и еще убедиться, что библиотека установиться из-под всех ОС и разных архитектур.
➡️ ➡️ ➡️
😀 manaakiwhenua/raster2dggs
Ох, хороший мем на злобу дня («Это я возвращаюсь к R после рискованной попытки покорения Python»).
У моих коллег недавно вышла библиотека
raster2dggs parquet. Занимают мало места, легко анализировать и еще иерархия ячеек присутствует, в общем, кайф. Так же вышла статья в Big Earth Data (Law & Ardo 2025), которая была выбрана редколлегией как лучшая статья месяца! С чем я их поздравляю и завидую))Ну а дальше классическая ситуация большинства питон кода — он не запускается нигде кроме компьютера разработчиков
Хорошо, что в R есть CRAN
Please open Telegram to view this post
VIEW IN TELEGRAM
🤗8🤩4😐2
Недавно вышел препринт статьи, написанной разработчиками самых популярных библиотек для геопространственного анализа на R, Python и Julia (Pebesma et al., 2025). Во введении есть классная диаграмма, которая показывает, насколько высокоуровневые либы похожи между собой на низком уровне. По сути, всё стоит на трёх китах: GDAL, GEOS, PROJ 👩💻 👩💻
Пару мемов, чтобы подкрепить данный тезис😋
Пару мемов, чтобы подкрепить данный тезис
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🤩14