Size: a a a

R language and Statistical data analysis

2020 January 14

ЕТ

Евгений Томилов in R language and Statistical data analysis
Важно именно руками, scale() не катит. 😁
источник

⌨️ in R language and Statistical data analysis
Евгений Томилов
Вопрос для волшебников по векторизации, а то я что-то не уверен.

mean_data <- tibble(a = c(1, 2, 3, 4, 5),
                   b = c(6, 7, 8, 9, 10))

means <- sapply(mean_data, mean)


А теперь я хочу центрировать данные, т.е. вычесть из каждого столбца соответствующее ему среднее в векторе. Как это сделать наиболее кратко без использования костылей и циклов? Вроде бы раньше векторизовались вектора по столбцам, но теперь нет или я чего-то не понимаю. Спасибо.
mutate_at(tbl, vars(a, b), ~.x - mean(.x))
источник

ЕТ

Евгений Томилов in R language and Statistical data analysis
⌨️
mutate_at(tbl, vars(a, b), ~.x - mean(.x))
Гениально, я как раз в dplyr смотрю. Спасибо.
источник

⌨️ in R language and Statistical data analysis
Евгений Томилов
Гениально, я как раз в dplyr смотрю. Спасибо.
dplyr очень, очень выразителен и прост, но имеет ряд ограничений и начнет жутко тормозить если писать бездумно. Добавьте туда же purrr вместо *apply
источник

PU

Philipp Upravitelev in R language and Statistical data analysis
> mean_data <- data.table(a = c(1, 2, 3, 4, 5),
+                         b = c(6, 7, 8, 9, 10))
>
> mean_data[, `:=`(a = a - mean(a), b = b - mean(b))]
> mean_data
   a  b
1: -2 -2
2: -1 -1
3:  0  0
4:  1  1
5:  2  2
источник

ЕТ

Евгений Томилов in R language and Statistical data analysis
Philipp Upravitelev
> mean_data <- data.table(a = c(1, 2, 3, 4, 5),
+                         b = c(6, 7, 8, 9, 10))
>
> mean_data[, `:=`(a = a - mean(a), b = b - mean(b))]
> mean_data
   a  b
1: -2 -2
2: -1 -1
3:  0  0
4:  1  1
5:  2  2
О, я всё больше склоняюсь к тому, чтобы серьёзно засесть за data.table.
источник

PU

Philipp Upravitelev in R language and Statistical data analysis
я эту песню уже второй год как слышу от вас, кажется %)
источник

ЕТ

Евгений Томилов in R language and Statistical data analysis
Philipp Upravitelev
я эту песню уже второй год как слышу от вас, кажется %)
Так я отвлёкся тогда на психологию. =(
источник

R

R in R language and Statistical data analysis
Евгений Томилов
Вопрос для волшебников по векторизации, а то я что-то не уверен.

mean_data <- tibble(a = c(1, 2, 3, 4, 5),
                   b = c(6, 7, 8, 9, 10))

means <- sapply(mean_data, mean)


А теперь я хочу центрировать данные, т.е. вычесть из каждого столбца соответствующее ему среднее в векторе. Как это сделать наиболее кратко без использования костылей и циклов? Вроде бы раньше векторизовались вектора по столбцам, но теперь нет или я чего-то не понимаю. Спасибо.
А обычный apply же делает цикл только по столбцам(строкам), сами столбцы(строки) уже как векторы используются, чем он плох?
источник

Ю

Юрий 🐙💻🤖📊📈🚬 in R language and Statistical data analysis
Philipp Upravitelev
коллеги, напоминаю про R-митап
регистрируйтесь и приходите. может и встретимся :)

Анонс для R Moscow Meetup #5 16 января 2020
Адрес: г. Москва, Кутузовский проспект, 32к1, Сбербанк.  Митап будет в конференц зале на 2 этаже, вход в офис через подъезд 3.
Начало регистрации: 18.30.
19:00-19:30 «Решение эксплуатационных задач с помощью R для чайников» - Константин Фирсов (АО "Нетрис", Главный инженер по внедрению).
19:30-20:00 «Оптимизация товарных запасов в retail» - Генрих Ананьев (ПАО Белуга Групп, Руководитель направления автоматизации отчётности).
20:00-20:30 «BMS в X5: как сделать business-process mining на неструктурированных POS логах средствами R» - Ролдугин Евгений (:x5:, Руководитель управления инструментов контроля качества сервисов), Илья Шутов (Медиа-тел, руководитель направления data science).
Регистрация:
https://forms.gle/vY2hZC6btBYoXhxK6
запись будет?
источник

PU

Philipp Upravitelev in R language and Statistical data analysis
Philipp Upravitelev
насколько я понимаю, да
угу
источник

Ю

Юрий 🐙💻🤖📊📈🚬 in R language and Statistical data analysis
ждем потом ссылку в чатике. М.б. с других митапов есть записи?
источник

PU

Philipp Upravitelev in R language and Statistical data analysis
источник

PU

Philipp Upravitelev in R language and Statistical data analysis
самый интересный третий, на мой взгляд
источник

a

aGricolaMZ in R language and Statistical data analysis
Евгений Томилов
Вопрос для волшебников по векторизации, а то я что-то не уверен.

mean_data <- tibble(a = c(1, 2, 3, 4, 5),
                   b = c(6, 7, 8, 9, 10))

means <- sapply(mean_data, mean)


А теперь я хочу центрировать данные, т.е. вычесть из каждого столбца соответствующее ему среднее в векторе. Как это сделать наиболее кратко без использования костылей и циклов? Вроде бы раньше векторизовались вектора по столбцам, но теперь нет или я чего-то не понимаю. Спасибо.
library(tidyverse)
df <- tibble(a = c(1, 2, 3, 4, 5),
            b = c(6, 7, 8, 9, 10))

df %>%
 map_df(function(x){x - mean(x)})

или

df %>%
 mutate_all(function(x){x - mean(x)})
источник

a

aGricolaMZ in R language and Statistical data analysis
Philipp Upravitelev
самый интересный третий, на мой взгляд
я тоже так считаю
источник

АК

Артём Клевцов in R language and Statistical data analysis
Philipp Upravitelev
> mean_data <- data.table(a = c(1, 2, 3, 4, 5),
+                         b = c(6, 7, 8, 9, 10))
>
> mean_data[, `:=`(a = a - mean(a), b = b - mean(b))]
> mean_data
   a  b
1: -2 -2
2: -1 -1
3:  0  0
4:  1  1
5:  2  2
1) стандартный вариант:
DT[, (cols) := lapply(.SD, function(x) x - mean(x)), .SDcols = cols]
2) более изящный вариант:
DT[, (cols) := .SD - colMeans(.SD), .SDcols = cols]
источник

PD

Pavel Demin in R language and Statistical data analysis
Всем доброго дня!
довольно примитивный вопрос; если коротко - сколько выставлять потоков в data.table?
по дефолту выставляет три потока
> data.table::getDTthreads()
[1] 3

но тот же parallel определяет 6 ядер
> parallel::detectCores()
[1] 6

стоит ли явно задать 6 потоков в data.table или оставить как есть для безопасности?
источник

PU

Philipp Upravitelev in R language and Statistical data analysis
имхо, один поток можно оставить, чтобы машинка совсем не померла, а остальные нагрузить
источник

АК

Артём Клевцов in R language and Statistical data analysis
Pavel Demin
Всем доброго дня!
довольно примитивный вопрос; если коротко - сколько выставлять потоков в data.table?
по дефолту выставляет три потока
> data.table::getDTthreads()
[1] 3

но тот же parallel определяет 6 ядер
> parallel::detectCores()
[1] 6

стоит ли явно задать 6 потоков в data.table или оставить как есть для безопасности?
Недавно изменили. Теперь по умолчанию половина. В ченджлоге есть объяснения.
источник