以下工作正常:
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(.))
Run Code Online (Sandbox Code Playgroud)
我认为如果我使用匿名函数,这将有效,但它没有:
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
Run Code Online (Sandbox Code Playgroud)
had*_*ley 20
您不需要匿名函数:
library(dplyr)
iris %>%
group_by(Species) %>%
do({
mod <- lm(Sepal.Length ~ Sepal.Width, data = .)
pred <- predict(mod, newdata = .["Sepal.Width"])
data.frame(., pred)
})
Run Code Online (Sandbox Code Playgroud)
sta*_*kam 14
你无法摆脱..
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)
})(.))
Run Code Online (Sandbox Code Playgroud)
那可行.这.是必要的.的.是爱.保持..