Size: a a a

R language and Statistical data analysis

2017 October 09

JS

Jury Sergeev in R language and Statistical data analysis
Andrey
А чем форыч не устраивает?
очень даже устраивает, он быстрый и гибкий, но вдруг можно еще лучше
источник

A

Andrey in R language and Statistical data analysis
Apply однопоточный
источник

JS

Jury Sergeev in R language and Statistical data analysis
Andrey
Форыч вернет список
вернет - да, но никто не мешает обработать то что не надо возвращать
источник

JS

Jury Sergeev in R language and Statistical data analysis
Andrey
Apply однопоточный
не знал, если честно
источник

JS

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

JS

Jury Sergeev in R language and Statistical data analysis
вообще, в принципе, ведь не все же можно через apply  и прочее выполнить, так ведь
источник

ГД

Григорий Демин in R language and Statistical data analysis
Конкретно, apply - не очень хорошая довольно медленная функция. Если уж так хочется без цикла, то лучше через lapply или vapply
источник

JS

Jury Sergeev in R language and Statistical data analysis
ну я имел в виду семейство этих функций, sapply, lapply, mapply
источник

A

Andrey in R language and Statistical data analysis
Можно все, где результат очередной итерации не зависит от предыдущей
источник

A

Andrey in R language and Statistical data analysis
Итерировать по нескольким переменным проще с purrr::pmap
источник

ГД

Григорий Демин in R language and Statistical data analysis
Конкретно с lapply будет примерно так выглядеть df[, my_cols] = lapply(df[, my_cols, drop = FALSE, my_fun)    my_fun добавляет уровни. Но я бы все равно цикл использовал:)
источник

ГД

Григорий Демин in R language and Statistical data analysis
Опечатка - ] забыл после FALSe
источник

N

Nikolay in R language and Statistical data analysis
как вариант, посмотреть семейство функций map из purrr, там можно возвращать df, вектора, списки
источник

N

Nikolay in R language and Statistical data analysis
а, про purrr уже написали
источник

JS

Jury Sergeev in R language and Statistical data analysis
Григорий Демин
Конкретно с lapply будет примерно так выглядеть df[, my_cols] = lapply(df[, my_cols, drop = FALSE, my_fun)    my_fun добавляет уровни. Но я бы все равно цикл использовал:)
да вот что-то у меня так не получилось, попробую еще, напишу тут пример, если не получится, спасибо
источник

JS

Jury Sergeev in R language and Statistical data analysis
Nikolay
как вариант, посмотреть семейство функций map из purrr, там можно возвращать df, вектора, списки
благодарю, посмотрю
источник

N

Nikolay in R language and Statistical data analysis
а, да, и итерировать по нескольким переменным (map - по одной, map2 - по двум, pmap - по списку переменных)
источник

JS

Jury Sergeev in R language and Statistical data analysis
ага, спасибо
источник

A

Alexander in R language and Statistical data analysis
Слушайте, а я вот хотел задать свой вечный вопрос про сабсеттинг. Я его в последнее время делаю selectом из dplyr и в пайпе. И иногда мне нужно заселектить сложным образом некоторые переменные (ну, допустим, начинаются с одного, заканчиваются другим, ещё парочку выкинуть), с ними что-то сделать, а потом вставить на место. Или с помощью filter некоторые кейсы выбрать, тоже с ними что-то сделать и вставить обратно. Но, как вы понимаете, со "вставить обратно" возникает ряд проблем. Расскажите, как вы обычно делаете такие вещи? Особенно интересно, если вы тоже любите dplyr и умеете это все прямо в пайпе.
источник

A

Andrey in R language and Statistical data analysis
Там есть case_which или типа того, см справку
источник