usar sheet instalar functions como cheat r dplyr

sheet - dplyr:: do() requiere una función nombrada?



select in r (2)

Lo siguiente funciona bien:

library(dplyr) m <- function(df) { mod <- lm(Sepal.Length ~ Sepal.Width, data = df) pred <- predict(mod,newdata = df["Sepal.Width"]) data.frame(df,pred) } iris %>% group_by(Species) %>% do(m(.))

Pensé que esto funcionaría si usara una función anónima, pero no lo hace:

iris %>% group_by(Species) %>% do(function(df) { mod <- lm(Sepal.Length ~ Sepal.Width, data = df) pred <- predict(mod,newdata = df["Sepal.Width"]) data.frame(df,pred) }) Error: Results are not data frames at positions: 1, 2, 3


No necesitas una función anónima:

library(dplyr) iris %>% group_by(Species) %>% do({ mod <- lm(Sepal.Length ~ Sepal.Width, data = .) pred <- predict(mod, newdata = .["Sepal.Width"]) data.frame(., pred) })


Usted no puede deshacerse de la . .

iris %>% group_by(Species) %>% do((function(df) { mod <- lm(Sepal.Length ~ Sepal.Width, data = df) pred <- predict(mod,newdata = df["Sepal.Width"]) data.frame(df,pred) })(.))

Que funcionará. El . es necesario. El . es amor. Mantener el . .