我有一個包含多個類的大型數據集。我的目標是爲每個班級擬定一個模型,然後預測結果並在一個方面爲每個班級形象化他們。將不同的模型擬合到R中的每個數據子集
對於一個可重複的例子,我創建了一些基本的使用mtcars
。這適用於每個類的簡單迴歸模型。
mtcars = data.table(mtcars)
model = mtcars[, list(fit = list(lm(mpg~disp+hp+wt))), keyby = cyl]
setkey(mtcars, cyl)
mtcars[model, pred := predict(i.fit[[1]], .SD), by = .EACHI]
ggplot(data = mtcars, aes(x = mpg, y = pred)) + geom_line() + facet_wrap(~cyl)
但是,我想嘗試下面的東西,它還沒有工作。這個嘗試與公式列表有關,但我也希望向每個數據子集發送不同的模型(一些glms,幾棵樹)。
mtcars = data.table(mtcars)
factors = list(c("disp","wt"), c("disp"), c("hp"))
form = lapply(factors, function(x) as.formula(paste("mpg~",paste(x,collapse="+"))))
model = mtcars[, list(fit = list(lm(form))), keyby = cyl]
setkey(mtcars, cyl)
mtcars[model, pred := predict(i.fit[[1]], .SD), by = .EACHI]
ggplot(data = mtcars, aes(x = mpg, y = pred)) + geom_line() + facet_wrap(~cyl)
數據表真的有必要嗎? – rawr
不,但在大型數據集上更快。 dplyr也可以。 – Divi
我只是暗示瓶頸將會被預測,lm,ggplot。是'list(fit = lapply(form,lm,data = .SD))'你想要什麼 – rawr