Size: a a a

R language and Statistical data analysis

2020 March 27

А

Александр in R language and Statistical data analysis
источник

A

Andrey in R language and Statistical data analysis
как это развидеть?
источник

А

Александр in R language and Statistical data analysis
Andrey
как это развидеть?
Не легко
источник

АК

Артём Клевцов in R language and Statistical data analysis
К теме про data.table vs pandas могу добавить, что кривым лапами можно и из data.table padnas сделать. Код с претензией на оптимальный надо писать с options(data.table.verbose = TRUE). Много нового про себя и R сразу узнаёшь.
И да, любое сравнение надо делать на средних и больших данных. На средних данных data.table можно показывать сходные результаты, но сильно отрываться на больших.
источник

EP

Ed P in R language and Statistical data analysis
Andrey
А на просторах СНГ? Тут нет FDA, и такое впечатление, что фарма застряла на ехеле.
в СНГ я заметил два тренда:
1. в рамках ЕАЭС худо-бедно переводятся / принимаются зарубежные стандарты, так что эксель скоро просто перестанет соответствовать требованиям. ну и на моем опыте даже сейчас он максимум для data capture используется, анализ уже в стат. пакетах.
2. компании растят амбиции и собираются регистрироваться зарубежом, так что спрос на SAS / R по идее должен расти.
источник

ВК

Владимир Калинин in R language and Statistical data analysis
Excel будет жить вечно)
источник

А

Александр in R language and Statistical data analysis
Ed P
в СНГ я заметил два тренда:
1. в рамках ЕАЭС худо-бедно переводятся / принимаются зарубежные стандарты, так что эксель скоро просто перестанет соответствовать требованиям. ну и на моем опыте даже сейчас он максимум для data capture используется, анализ уже в стат. пакетах.
2. компании растят амбиции и собираются регистрироваться зарубежом, так что спрос на SAS / R по идее должен расти.
на TIOBE R снова пополз вверх
источник

PU

Philipp Upravitelev in R language and Statistical data analysis
занятия у студентов идут, видимо :)
источник

AB

Alexey Burnakov in R language and Statistical data analysis
Артём Клевцов
К теме про data.table vs pandas могу добавить, что кривым лапами можно и из data.table padnas сделать. Код с претензией на оптимальный надо писать с options(data.table.verbose = TRUE). Много нового про себя и R сразу узнаёшь.
И да, любое сравнение надо делать на средних и больших данных. На средних данных data.table можно показывать сходные результаты, но сильно отрываться на больших.
интересное замечание. а в чем будет разница, если эту опцию не включать? dt вроде и по умолчанию выдает warnings/errors.
источник

АК

Артём Клевцов in R language and Statistical data analysis
Alexey Burnakov
интересное замечание. а в чем будет разница, если эту опцию не включать? dt вроде и по умолчанию выдает warnings/errors.
А ты включи и посмотри в чём разница - будет лучше любых объяснений. Это также стоит почитать: https://jangorecki.gitlab.io/data.cube/library/data.table/html/datatable-optimize.html
GForce далеко не всегда включается (там много нюансов), а без него совсем не весело миллионами строк ворочить.
источник

AB

Alexey Burnakov in R language and Statistical data analysis
Артём Клевцов
А ты включи и посмотри в чём разница - будет лучше любых объяснений. Это также стоит почитать: https://jangorecki.gitlab.io/data.cube/library/data.table/html/datatable-optimize.html
GForce далеко не всегда включается (там много нюансов), а без него совсем не весело миллионами строк ворочить.
Я включил и посмотрел, после этого написал. Прогнал несколько функций на DT, ни до ни после включения никаких логов не сыпется
источник

AB

Alexey Burnakov in R language and Statistical data analysis
После прочтения по ссылке, заменяются группирующие функции и lapply. Я их не использовал, была функция quantile, но она не заменяется. Если дело только в этом, то ясно...
источник

AB

Alexey Burnakov in R language and Statistical data analysis
Хотя, lapply использовал, но также дополнительных сообщений не было.
источник

AB

Alexey Burnakov in R language and Statistical data analysis
И, кстати, эта ссылка было про опцию optimize, а не verbose
источник

AB

Alexey Burnakov in R language and Statistical data analysis
По умолчанию все оптимизируется, вот краткий итог
источник

АК

Артём Клевцов in R language and Statistical data analysis
Покажу пример чуть позже. Мне помогло выяснить некоторые нюансы и активировать GForce.
источник

AB

Alexey Burnakov in R language and Statistical data analysis
Артём Клевцов
Покажу пример чуть позже. Мне помогло выяснить некоторые нюансы и активировать GForce.
Спасибо.
источник
2020 March 28

АК

Артём Клевцов in R language and Statistical data analysis
Артём Клевцов
Покажу пример чуть позже. Мне помогло выяснить некоторые нюансы и активировать GForce.
Пример работы агрегации логической переменной, когда GForce отключается, если использовать оператор !. Код для воспроизведения:
library(data.table)
library(microbenchmark)

set.seed(1)
n <- 10e5
d <- data.table(
 g = sample(letters, n, replace = TRUE),
 f = sample(c(TRUE, FALSE), n, replace = TRUE)
)

options(datatable.verbose = TRUE)
invisible(d[, .(v = sum(f)), by = .(g)])
invisible(d[, .(v = sum(!f)), by = .(g)])
источник

АК

Артём Клевцов in R language and Statistical data analysis
Артём Клевцов
Пример работы агрегации логической переменной, когда GForce отключается, если использовать оператор !. Код для воспроизведения:
library(data.table)
library(microbenchmark)

set.seed(1)
n <- 10e5
d <- data.table(
 g = sample(letters, n, replace = TRUE),
 f = sample(c(TRUE, FALSE), n, replace = TRUE)
)

options(datatable.verbose = TRUE)
invisible(d[, .(v = sum(f)), by = .(g)])
invisible(d[, .(v = sum(!f)), by = .(g)])
Сравним вывод:
> invisible(d[, .(v = sum(f)), by = .(g)])
Detected that j uses these columns: f
Finding groups using forderv ... forder.c received 1000000 rows and 1 columns
0.012s elapsed (0.013s cpu)
Finding group sizes from the positions (can be avoided to save RAM) ... 0.000s elapsed (0.000s cpu)
Getting back original order ... forder.c received a vector type 'integer' length 26
0.000s elapsed (0.000s cpu)
lapply optimization is on, j unchanged as 'list(sum(f))'
GForce optimized j to 'list(gsum(f))'
Making each group and running j (GForce TRUE) ... gforce initial population of grp took 0.000
gforce assign high and low took 0.014
This gsum took (narm=FALSE) ... gather took ... 0.003s
0.004s
gforce eval took 0.004
0.019s elapsed (0.030s cpu)
источник

АК

Артём Клевцов in R language and Statistical data analysis
> invisible(d[, .(v = sum(!f)), by = .(g)])
Detected that j uses these columns: f
Finding groups using forderv ... forder.c received 1000000 rows and 1 columns
0.013s elapsed (0.017s cpu)
Finding group sizes from the positions (can be avoided to save RAM) ... 0.000s elapsed (0.000s cpu)
Getting back original order ... forder.c received a vector type 'integer' length 26
0.000s elapsed (0.000s cpu)
lapply optimization is on, j unchanged as 'list(sum(!f))'
GForce is on, left j unchanged
Old mean optimization is on, left j unchanged.
Making each group and running j (GForce FALSE) ...
 collecting discontiguous groups took 0.004s for 26 groups
 eval(j) took 0.005s for 26 calls
0.005s elapsed (0.009s cpu)
источник