Predict() 范围更广
Predict() in wider range
我很抱歉一遍又一遍地重复这个问题,但我似乎对预测更大范围的理解很差。似乎如果数据的 nrow 与预测值匹配得很好,你就没有错误。但是,如果你想预测 不同的范围 我们会得到一个错误。
使用来自 dplyrdo-requires-named-function
的相同数据
效果很好。但是如果你想改变配件的范围,我得到一个错误!
library(dplyr)
iris %>%
group_by(Species) %>%
do({
mod <- lm(Sepal.Length ~ Sepal.Width, data = .)
pred <- predict(mod, newdata = data.frame(Sepal.Width=seq(1,10,length.out=51)))
data.frame(., pred)
})
data.frame(., pred) 错误:
参数表示不同的行数:50、51
我了解到新范围与之前的数据不匹配.
。
OTH,我需要预测更大范围的 Sepal.Width
值。这可能吗 ?
当您使用 data.frame(.,pred)
时,您试图将一个包含 50 行的现有数据框和一个包含 51 行的新预测绑定在一起。如果将此行替换为 data.frame(pred)
一切正常:
# A tibble: 153 x 2
# Groups: Species [3]
Species pred
<fctr> <dbl>
1 setosa 3.329491
2 setosa 3.453779
3 setosa 3.578067
...
我很抱歉一遍又一遍地重复这个问题,但我似乎对预测更大范围的理解很差。似乎如果数据的 nrow 与预测值匹配得很好,你就没有错误。但是,如果你想预测 不同的范围 我们会得到一个错误。
使用来自 dplyrdo-requires-named-function
的相同数据效果很好。但是如果你想改变配件的范围,我得到一个错误!
library(dplyr)
iris %>%
group_by(Species) %>%
do({
mod <- lm(Sepal.Length ~ Sepal.Width, data = .)
pred <- predict(mod, newdata = data.frame(Sepal.Width=seq(1,10,length.out=51)))
data.frame(., pred)
})
data.frame(., pred) 错误: 参数表示不同的行数:50、51
我了解到新范围与之前的数据不匹配.
。
OTH,我需要预测更大范围的 Sepal.Width
值。这可能吗 ?
当您使用 data.frame(.,pred)
时,您试图将一个包含 50 行的现有数据框和一个包含 51 行的新预测绑定在一起。如果将此行替换为 data.frame(pred)
一切正常:
# A tibble: 153 x 2
# Groups: Species [3]
Species pred
<fctr> <dbl>
1 setosa 3.329491
2 setosa 3.453779
3 setosa 3.578067
...