Я хотел бы подключить (цепочку) объект magrittr в цикл. Как я могу это сделать?
я буду использовать фиктивные операции/данные в качестве примера:Оптимизация R-цепей (magrittr)
library(data.table)
library(magrittr)
# Dummy data modification
d <- mtcars %>%
setDT() %>%
.[, cylSQ := sqrt(cyl)] %>%
.[, carb3 := carb^3]
# Dummy loop
res <- list()
for(i in unique(d$gear)) {
res[[i]] <- d[gear == i] %>%
.[, lm(cylSQ ~ mpg + carb3 * wt)] %>%
.$fitted.values
}
Можно не создавать объект d
и к трубе она непосредственно в цикле? Например:
for(i in unique(.$gear)) {
res[[i]] <- .[gear == i] %>%
...
}
Edit: Я не хочу, чтобы заменить петлю data.table
или dplyr
, просто любопытно трубопроводов.
Возможно, я ошибаюсь, не является ли причиной наличие пакета 'purrr'? – zx8754
@ zx8754 Я не слышал об этом раньше, не знаю, что это то, что я ищу, но все же кажется, что это очень хорошо и стоит посмотреть. Спасибо за хорошее предложение! – PoGibas
'mtcars%>% setDT' идет вразрез с грамматикой dplyr/философией не изменяющего ввода, fyi. – Frank