R in Action (ru)

Description
Компактные DS задачки и их решения на R в `reprex`-формате. Возможны python, Wolfram Mathematica и все что подвернется под руку.
Advertising
We recommend to visit

Рассказываю про крипту и инвестиции на понятном языке.

Сотрудничество — @TGowner999

Больше информации о нашей сети: https://t.me/TGownerTOP

Last updated 4 days, 1 hour ago

Утро начинается не с кофе.

Сотрудничество: @evoanna (по всем вопросам, только мне писать)

Last updated 2 months, 2 weeks ago

Канал кто хочет легко заработать в интернете

По поводу рекламы - @pavelWbprice

Last updated 2 months, 3 weeks ago

1 month ago

»»»»»»

```
library(tidyverse)
library(foreach)

nn <- 10^4

df <- tibble(run_1 = sample(1:20, size = nn, replace = TRUE),
run_2 = sample(1:20, size = nn, replace = TRUE)) %>%
mutate(advantage = pmax(run_1, run_2), bonus = run_1 + 4)

# посчитаем долю успешных проверок для различных уровней проверки
run_df <- foreach(it = 1:20) %do% {
df |>
summarise(n = it,
advantage_success = mean(advantage >= !!it),
bonus_success = mean(bonus >= !!it))
} |>
purrr::list_rbind()

run_df |>
pivot_longer(cols = -n, values_to = "success_ratio") |>
ggplot(aes(x = n, y = success_ratio,
colour = name, group = name)) +
geom_point(shape = 21, size = 3) +
geom_line() +
scale_x_continuous(breaks = scales::breaks_width(1)) +
ggthemes::scale_colour_tableau("Tableau 10") +
theme_bw() +
theme(legend.position = "bottom")
```

»»»»»»

1 month, 1 week ago

»»»»»»

Контрольная сверка

`` \# по грузовикам plan\_df %>% drop\_na() %>% summarise(offer = sum(offer), .by = truck\_id) %>% left\_join(offer\_df) %>% mutate(status = if\_else(offer < volume, "", "Complete")) \#> Joining withby = join_by(truck_id)`
#> # A tibble: 6 × 4
#> truck_id offer volume status
#>
#> 1 truck_6 2.33 5.74 ""
#> 2 truck_5 7.47 7.47 "Complete"
#> 3 truck_7 7.12 7.12 "Complete"
#> 4 truck_4 9.69 13.2 ""
#> 5 truck_3 6.54 14.2 ""
#> 6 truck_9 3.12 13.6 ""

# по площадкам
plan_df %>%
drop_na() %>%
summarise(offer = sum(offer), .by = site_id) %>%
left_join(demand_df) %>%
mutate(status = if_else(offer > demand, "", "Complete"))
#> Joining with by = join\_by(site\_id)
#> # A tibble: 9 × 4
#> site_id offer demand status
#>
#> 1 site_7 2.33 2.33 Complete
#> 2 site_9 2.86 2.86 Complete
#> 3 site_2 3.86 3.86 Complete
#> 4 site_6 5.54 5.54 Complete
#> 5 site_1 2.01 2.01 Complete
#> 6 site_8 5.49 5.49 Complete
#> 7 site_3 5.72 5.72 Complete
#> 8 site_4 4.30 4.30 Complete
#> 9 site_5 4.15 4.15 Complete
Created on 2024-10-13 with reprex v2.1.1
```

Всё, задача кончилась. Дольше длились подготовка и проверка чем само решение.

#R

1 month, 1 week ago

»»»»»»

Подготовка данных

Формируем карту возможных маршрутов. Для полноты картины, развозить будем в порядке поступления заявок.

```
library(tidyverse)
library(data.table)

# сочиним таблицу маршрутов
routes_df <- expand_grid(
site_id = paste0("site_", 1:9),
truck_id = paste0("truck_", 1:9)
) |>
sample_frac(.4) |>
mutate(order_id = row_number())
```

У каждой площадки есть потребность в песке, а каждый грузовик обладает определенной грузоподъемностью. Сгенерируем эту информацию.

```
set.seed(1)

demand_df <- routes_df |>
distinct(site_id) |>
mutate(demand = runif(n(), 1, 6))

offer_df <- routes_df |>
distinct(truck_id) |>
mutate(volume = runif(n(), 5, 17))
```

»»»»»»

4 months, 1 week ago

»»»»»»

Если поиск не работает, действуем по инструкции:

  1. Включаем дебаг режим Sys.setenv(RSTUDIO_GREP_DEBUG = 1).
  2. Смотрим сообщения в консоли после проведения поиска.
  3. Исправляем ошибки. В частности, могут быть ошибки, связанные в недоверенными директориями (специфика гита) или неправильным владельцем.

git можно приструнить командами наподобие git config \-\-global \-\-add safe.directory * или более аккуратными.
❍ На сменном носителе придется поменять владельца директории (take ownership).

В Windows можно пользоваться не только GUI, но и утилитами командной строки для работы с ACL takeown.exe & icacl.exe

Пример использования icacls и takeown для получения доступа ко всем файлам несистемного диска.
takeown /f H: /r /d y
/r — нужен для обработки всех вложенных папок
/d y — положительно отвечает на стандартный запрос да/нет, который появляется в том случае, если у пользователя нет прав для доступа к подпапкам.
icacls H:\* /reset /T

#R

4 months, 2 weeks ago

#R

4 months, 2 weeks ago

А вот с открытого доступа с Datacamp

Datacamp - Data Analysis in R, the data.table Way

6 months, 2 weeks ago

Данные задачки

We recommend to visit

Рассказываю про крипту и инвестиции на понятном языке.

Сотрудничество — @TGowner999

Больше информации о нашей сети: https://t.me/TGownerTOP

Last updated 4 days, 1 hour ago

Утро начинается не с кофе.

Сотрудничество: @evoanna (по всем вопросам, только мне писать)

Last updated 2 months, 2 weeks ago

Канал кто хочет легко заработать в интернете

По поводу рекламы - @pavelWbprice

Last updated 2 months, 3 weeks ago