【发布时间】:2015-09-25 02:00:14
【问题描述】:
我有一个包含一列模型的数据框,我正在尝试向其中添加一列预测值。一个最小的例子是:
exampleTable <- data.frame(x = c(1:5, 1:5),
y = c((1:5) + rnorm(5), 2*(5:1)),
groups = rep(LETTERS[1:2], each = 5))
models <- exampleTable %>% group_by(groups) %>% do(model = lm(y ~ x, data = .))
exampleTable <- left_join(tbl_df(exampleTable), models)
estimates <- exampleTable %>% rowwise() %>% do(Est = predict(.$model, newdata = .["x"]))
如何向exampleTable 添加一列数字预测?我尝试使用mutate直接将列添加到表中,但没有成功。
exampleTable <- exampleTable %>% rowwise() %>% mutate(data.frame(Pred = predict(.$model, newdata = .["x"])))
错误:没有适用于“预测”的方法应用于“列表”类的对象
现在我使用bind_cols 将estimates 添加到exampleTable,但我正在寻找更好的解决方案。
estimates <- exampleTable %>% rowwise() %>% do(data.frame(Pred = predict(.$model, newdata = .["x"])))
exampleTable <- bind_cols(exampleTable, estimates)
如何一步完成?
【问题讨论】: