Notice: file_put_contents(): Write of 17695 bytes failed with errno=28 No space left on device in /var/www/tgoop/post.php on line 50

Warning: file_put_contents(): Only 4096 of 21791 bytes written, possibly out of free disk space in /var/www/tgoop/post.php on line 50
Статистика и R в науке и аналитике@stats_for_science P.91
STATS_FOR_SCIENCE Telegram 91
Основные изменения в tidyverse 2.0.0

Совсем недавно (31 октября) вышла новая версия R 4.3.2 и я обнаружила, что на домашнем ноутбуке сижу на версии R уже прошлого года, а значит пора обновиться. К тому же при подготовке лекции по tidyverse обнаружила, что у меня не самая актуальная версия, а ведь еще в марте вышло обновление tidyverse до 2.0.0 версии, о чем мы сегодня поговорим.

Наиболее полно описаны основные изменения в статье Mine Çetinkaya-Rundel "Teaching the tidyverse in 2023", здесь я выделю ключевые моменты.
1) lubridate стал одним из уже 9 пакетов core tidyverse, что для меня довольно удобно, потому что все время нужен для работы с датами и временем.
2) Немного изменился синтаксис функции dplyr::case_when(), теперь значение по умолчанию пишется как .default = , а не TRUE ~ , как было раньше. При этом синтаксис с TRUE все еще работает, что радует, хотя в новых скриптах стоит переходить на новый.
3) Функции if_else() и case_when() перестали быть настолько строгими с пропущенными значениями, так, раньше:
# previously
df |>
mutate(
x = case_when(
~ "value 1",
~ "value 2",
~ "value 3",
TRUE ~ NA_character_
)
)

в случае использования NA в качестве результата выражения, необходимо было прописывать тип пропущенных значений (NA_character_, NA_real_ и тп). Теперь это отменили, что неплохо, хотя мне казалось полезным контролировать тип пропущенных значений. Но если честно, ошибка была непонятная, в случае если не знаешь в чем дело.

4) Появилась возможность прописывать группировку непосредственно в функции summarise() аргументом .by.

# previously
df |>
group_by(x) |>
summarize(mean(y))


Это важно, поскольку после group_by() + summarise() датафрейм остается сгруппированным, что может повлиять на дальнейшие расчеты, и иногда необходимо разгруппировать датафрейм. Теперь, если сгруппированный датафрейм не нужен в дальнейшем, то можно написать так:

# now, optionally
df |>
summarize(
mean(y),
.by = x
)

Звучит неплохо, но связка group_by+summarise уже настолько привычна, что отвыкать придется долго.
В целом, после обновления обратная совместимость сохраняется, порадовало например, что синтаксис с TRUE в case_when() не сломался.

И помимо этого, в телеграме появилась возможность использовать подсветку синтаксиса для чанков с кодом с версии 4.11 для десктопа. Это очень круто, кто еще не сделал, обновите телеграм, код получается супер красивым и отформатированным. Для подсветки синтаксиса используются три бэктика ``` и название языка, далее код и три закрывающих бэктика. По умолчанию такое форматирование делает reprex::reprex() (про репрекс можно почитать мой пост, который не утратил актуальности).

Также планирую в ближайшие две недели продолжить запись лекций по R, так что обязательно следите за новостями!

Пишите комментарии, заценили ли обновление tidyverse и телеграма, используете ли аргумент .by вместо group_by() и любые вопросы!

#R #tidyverse
23👍126🔥6



tgoop.com/stats_for_science/91
Create:
Last Update:

Основные изменения в tidyverse 2.0.0

Совсем недавно (31 октября) вышла новая версия R 4.3.2 и я обнаружила, что на домашнем ноутбуке сижу на версии R уже прошлого года, а значит пора обновиться. К тому же при подготовке лекции по tidyverse обнаружила, что у меня не самая актуальная версия, а ведь еще в марте вышло обновление tidyverse до 2.0.0 версии, о чем мы сегодня поговорим.

Наиболее полно описаны основные изменения в статье Mine Çetinkaya-Rundel "Teaching the tidyverse in 2023", здесь я выделю ключевые моменты.
1) lubridate стал одним из уже 9 пакетов core tidyverse, что для меня довольно удобно, потому что все время нужен для работы с датами и временем.
2) Немного изменился синтаксис функции dplyr::case_when(), теперь значение по умолчанию пишется как .default = , а не TRUE ~ , как было раньше. При этом синтаксис с TRUE все еще работает, что радует, хотя в новых скриптах стоит переходить на новый.
3) Функции if_else() и case_when() перестали быть настолько строгими с пропущенными значениями, так, раньше:

# previously
df |>
mutate(
x = case_when(
~ "value 1",
~ "value 2",
~ "value 3",
TRUE ~ NA_character_
)
)

в случае использования NA в качестве результата выражения, необходимо было прописывать тип пропущенных значений (NA_character_, NA_real_ и тп). Теперь это отменили, что неплохо, хотя мне казалось полезным контролировать тип пропущенных значений. Но если честно, ошибка была непонятная, в случае если не знаешь в чем дело.

4) Появилась возможность прописывать группировку непосредственно в функции summarise() аргументом .by.

# previously
df |>
group_by(x) |>
summarize(mean(y))


Это важно, поскольку после group_by() + summarise() датафрейм остается сгруппированным, что может повлиять на дальнейшие расчеты, и иногда необходимо разгруппировать датафрейм. Теперь, если сгруппированный датафрейм не нужен в дальнейшем, то можно написать так:

# now, optionally
df |>
summarize(
mean(y),
.by = x
)

Звучит неплохо, но связка group_by+summarise уже настолько привычна, что отвыкать придется долго.
В целом, после обновления обратная совместимость сохраняется, порадовало например, что синтаксис с TRUE в case_when() не сломался.

И помимо этого, в телеграме появилась возможность использовать подсветку синтаксиса для чанков с кодом с версии 4.11 для десктопа. Это очень круто, кто еще не сделал, обновите телеграм, код получается супер красивым и отформатированным. Для подсветки синтаксиса используются три бэктика ``` и название языка, далее код и три закрывающих бэктика. По умолчанию такое форматирование делает reprex::reprex() (про репрекс можно почитать мой пост, который не утратил актуальности).

Также планирую в ближайшие две недели продолжить запись лекций по R, так что обязательно следите за новостями!

Пишите комментарии, заценили ли обновление tidyverse и телеграма, используете ли аргумент .by вместо group_by() и любые вопросы!

#R #tidyverse

BY Статистика и R в науке и аналитике




Share with your friend now:
tgoop.com/stats_for_science/91

View MORE
Open in Telegram


Telegram News

Date: |

Ng was convicted in April for conspiracy to incite a riot, public nuisance, arson, criminal damage, manufacturing of explosives, administering poison and wounding with intent to do grievous bodily harm between October 2019 and June 2020. Although some crypto traders have moved toward screaming as a coping mechanism, several mental health experts call this therapy a pseudoscience. The crypto community finds its way to engage in one or the other way and share its feelings with other fellow members. Developing social channels based on exchanging a single message isn’t exactly new, of course. Back in 2014, the “Yo” app was launched with the sole purpose of enabling users to send each other the greeting “Yo.” The initiatives announced by Perekopsky include monitoring the content in groups. According to the executive, posts identified as lacking context or as containing false information will be flagged as a potential source of disinformation. The content is then forwarded to Telegram's fact-checking channels for analysis and subsequent publication of verified information. According to media reports, the privacy watchdog was considering “blacklisting” some online platforms that have repeatedly posted doxxing information, with sources saying most messages were shared on Telegram.
from us


Telegram Статистика и R в науке и аналитике
FROM American