Size: a a a

R (язык программирования)

2020 August 11

АК

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

Как прописать условие в скрипте, чтобы если появилась подобная ошибка, скрипт начал работу заново?

правильно понимаю что должно быть примерно так?

in_values           <- metrika
out_values_try      <- list()

# tryCatch
for ( val in in_values ) {
 
 tryCatch({out_values_tryCatch <- append(out_values_tryCatch) },
          error = function(e) {print("Error: go next")} )
}
Стоит всё же погуглить перед тем, как вопрос задавать. Есть нескоглько вопросов с ответами на SO. Есть пакеты в CRAN, можно напридумывать самому со счётчиком и проверкой результата на ошибку (inherits(try, "try-error")).
https://randy3k.github.io/retry/
источник

АК

Артём Клевцов... in R (язык программирования)
Артём Клевцов
1) Есть триггеры, где можно прописать условия. 2) Если используются конструкции file_in, file_out, то чекаются эти файла на время доступа.
Вот тут ещё есть про кэш: https://books.ropensci.org/drake/storage.html
источник

JS

Jury Sergeev in R (язык программирования)
Артём Клевцов
1) Есть триггеры, где можно прописать условия. 2) Если используются конструкции file_in, file_out, то чекаются эти файла на время доступа.
ммм, спасибо... пошел курить... пока сбивает с толку что простейшая функция - кешируется, а хитрая (там пакет websocket используется) - нет...
источник

Н

Ник in R (язык программирования)
Артём Клевцов
Стоит всё же погуглить перед тем, как вопрос задавать. Есть нескоглько вопросов с ответами на SO. Есть пакеты в CRAN, можно напридумывать самому со счётчиком и проверкой результата на ошибку (inherits(try, "try-error")).
https://randy3k.github.io/retry/
гуглил) поэтому и спросил подходит условие по tryCatch)

спасибо за ссылку на пакет retry)

я только вникаю в язык R, поэтому у меня просьба помочь с правильностью написания скрипта.

на основе примера из ссылки, выходит запрос будет таким?

library(rym)
library(retry)
metrika <- [функция подтягивания данных с метрики]) {if count.fields("400: Query is too complicated. Please reduce the date interval or sampling"){stop "too much data"}}
retry(metrika, when = "too much data")
retry(metrika, until != "too much data")
источник

JS

Jury Sergeev in R (язык программирования)
Артём Клевцов
1) Есть триггеры, где можно прописать условия. 2) Если используются конструкции file_in, file_out, то чекаются эти файла на время доступа.
разобрался, через <<- делались изменения переменных за областью видимости (так нужно, websocket асинхронный, а данными обмениваться нужно), что в некоторых случаях приводило к генерации этой переменной выше всей вызываемой функции, отчего кеш становился out of date
источник

JS

Jury Sergeev in R (язык программирования)
благодарю за помощь
источник

E

EK479 in R (язык программирования)
cv.ctrl <- trainControl(method = "repeatedcv", repeats = 1,number = 3)
my_control <-trainControl(method="cv", number=5)
xgb_grid = expand.grid(
 nrounds = 1000,
 eta = c(0.1, 0.05, 0.01),
 max_depth = c(2, 3, 4, 5, 6),
 gamma = 0,
 colsample_bytree=1,
 min_child_weight=c(1, 2, 3, 4 ,5),
 subsample=1
)
xgb_caret <- train(SalePrice~.,x_vars_price,
                  method='xgbTree', trControl=my_control, tuneGrid=xgb_grid)


в датасете тренировочном 1460 строк и 80 переменных. уже прошел час с момента запуска.Сколько такая операция по времени может протекать?
источник

AS

Alexander Semenov in R (язык программирования)
Зависит от компа. У вас пространство гиперпараметров немалое.
источник

JS

Jury Sergeev in R (язык программирования)
Alexander Semenov
Зависит от компа. У вас пространство гиперпараметров немалое.
тут лучше бы случайный поиск, а не перебор по сетке
источник

АК

Артём Клевцов... in R (язык программирования)
EK479
cv.ctrl <- trainControl(method = "repeatedcv", repeats = 1,number = 3)
my_control <-trainControl(method="cv", number=5)
xgb_grid = expand.grid(
 nrounds = 1000,
 eta = c(0.1, 0.05, 0.01),
 max_depth = c(2, 3, 4, 5, 6),
 gamma = 0,
 colsample_bytree=1,
 min_child_weight=c(1, 2, 3, 4 ,5),
 subsample=1
)
xgb_caret <- train(SalePrice~.,x_vars_price,
                  method='xgbTree', trControl=my_control, tuneGrid=xgb_grid)


в датасете тренировочном 1460 строк и 80 переменных. уже прошел час с момента запуска.Сколько такая операция по времени может протекать?
В диспетчере задач должна быть видна активность R-процесса/ов.
источник

AS

Alexander Semenov in R (язык программирования)
Jury Sergeev
тут лучше бы случайный поиск, а не перебор по сетке
А то и вовсе байесовский перебор. MLBayesOpt или как-то так называется.
источник

A

Andrey in R (язык программирования)
Подскажите плиз, как выхлоп от этой шляпы https://ropensci.org/blog/2019/10/29/skimrv2/ вывести в html как обычный текст (не парся форматирование как маркдаун-разметку). results='asis' не помогает
источник

A

Andrey in R (язык программирования)
в консоли оно такое
источник

A

Andrey in R (язык программирования)
а получается вот такое некрасивое
источник

Ю

Юрий 🐙💻🤖📊📈🚬... in R (язык программирования)
Andrey
а получается вот такое некрасивое
А в чем некрасивость?
источник

A

Andrey in R (язык программирования)
не помещается по ширине
источник

A

Andrey in R (язык программирования)
https://bookdown.org/yihui/rmarkdown-cookbook/results-asis.html нашел, но че-то не выходит у меня
источник

a

aGricolaMZ in R (язык программирования)
Andrey
а получается вот такое некрасивое
а что не выходит? просто добавить в хэдер чанка
источник

A

Andrey in R (язык программирования)
там наоборот описано, как маркдаун программно генерить
источник

A

Andrey in R (язык программирования)
а у меня он генерится сам, но я не хочу его парсить в html-таблицы
источник