如何使用预测功能获取新列
How to get the new column with predict function
我正在尝试使用 lm 和预测函数填充一列。我需要创建一个名为 "estimation" 的新列,其中包含 24 个新值。
My data looks like:
first second third
17 44 50
788 890 1409
968 218 344
212 185 306
333 355 NA
0 4 10
160 156 184
4 4 8
12 4 4
21 2 0
3 0 0
35 32 NA
22 18 59
97 150 40
1 18 79
12 32 23
42 21 22
8 2 5
24 17 0
4 2 2
0 0 0
29 19 21
15 20 NA
0 1 NA
首先,我使用随机回归模型和函数lm 得到b 和a 系数(ax+b)。我明白了。接下来使用预测函数,我想填充新列 "estimation"。但是我得到一个错误。
data<- X12_5_3
regr <- lm(X12_5_3$third ~ X12_5_3$second)
regr
X12_5_3$estimation<-predict(regr, na.action=TRUE)
X12_5_3$estimation
Error in `$<-.data.frame`(`*tmp*`, estimation, value = c(`1` =
57.4742893243486, :
replacement has 20 rows, data has 24
我没有收到此专栏。
还不完全清楚您想要的结果是什么。一方面,您可能更喜欢
(X12_5_3$estimation <- predict(regr, newdata = X12_5_3))
# [1] 57.474289 1380.179615 329.520065 277.925177 543.717027 -5.064970
# [7] 232.584214 -5.064970 -5.064970 -8.191932 -11.318895 38.712512
# [13] 16.823771 223.203325 16.823771 38.712512 21.514215 -8.191932
# [19] 15.260290 -8.191932 -11.318895 18.387253 19.950734 -9.755414
在这种情况下,除了 20 个拟合值外,您还可以通过使用 regr
获得 4 个实际预测。另一方面,如果你真的想要四个 NA
的拟合值,那么
regr <- lm(X12_5_3$third ~ X12_5_3$second, na.action = "na.exclude")
(X12_5_3$estimation <- predict(regr))
# 1 2 3 4 5 6 7
# 57.474289 1380.179615 329.520065 277.925177 NA -5.064970 232.584214
# 8 9 10 11 12 13 14
# -5.064970 -5.064970 -8.191932 -11.318895 NA 16.823771 223.203325
# 15 16 17 18 19 20 21
# 16.823771 38.712512 21.514215 -8.191932 15.260290 -8.191932 -11.318895
# 22 23 24
# 18.387253 NA NA
我正在尝试使用 lm 和预测函数填充一列。我需要创建一个名为 "estimation" 的新列,其中包含 24 个新值。
My data looks like:
first second third
17 44 50
788 890 1409
968 218 344
212 185 306
333 355 NA
0 4 10
160 156 184
4 4 8
12 4 4
21 2 0
3 0 0
35 32 NA
22 18 59
97 150 40
1 18 79
12 32 23
42 21 22
8 2 5
24 17 0
4 2 2
0 0 0
29 19 21
15 20 NA
0 1 NA
首先,我使用随机回归模型和函数lm 得到b 和a 系数(ax+b)。我明白了。接下来使用预测函数,我想填充新列 "estimation"。但是我得到一个错误。
data<- X12_5_3
regr <- lm(X12_5_3$third ~ X12_5_3$second)
regr
X12_5_3$estimation<-predict(regr, na.action=TRUE)
X12_5_3$estimation
Error in `$<-.data.frame`(`*tmp*`, estimation, value = c(`1` =
57.4742893243486, :
replacement has 20 rows, data has 24
我没有收到此专栏。
还不完全清楚您想要的结果是什么。一方面,您可能更喜欢
(X12_5_3$estimation <- predict(regr, newdata = X12_5_3))
# [1] 57.474289 1380.179615 329.520065 277.925177 543.717027 -5.064970
# [7] 232.584214 -5.064970 -5.064970 -8.191932 -11.318895 38.712512
# [13] 16.823771 223.203325 16.823771 38.712512 21.514215 -8.191932
# [19] 15.260290 -8.191932 -11.318895 18.387253 19.950734 -9.755414
在这种情况下,除了 20 个拟合值外,您还可以通过使用 regr
获得 4 个实际预测。另一方面,如果你真的想要四个 NA
的拟合值,那么
regr <- lm(X12_5_3$third ~ X12_5_3$second, na.action = "na.exclude")
(X12_5_3$estimation <- predict(regr))
# 1 2 3 4 5 6 7
# 57.474289 1380.179615 329.520065 277.925177 NA -5.064970 232.584214
# 8 9 10 11 12 13 14
# -5.064970 -5.064970 -8.191932 -11.318895 NA 16.823771 223.203325
# 15 16 17 18 19 20 21
# 16.823771 38.712512 21.514215 -8.191932 15.260290 -8.191932 -11.318895
# 22 23 24
# 18.387253 NA NA