首页 > 解决方案 > 将观察添加到列不起作用(错误:“下标越界”)

问题描述

我正在尝试将一个观察结果添加到只有一列的数据框中。

fitted.values.elec <- rbind(fitted.values.elec[1:20,],5,725895,fitted.values.elec[-(1:20),])

这样做我得到:

  1. 错误“下标越界”。
  2. 数据框变成一个矩阵。对于 class() 我得到矩阵和数组。

我在这里想念什么?

谢谢!

这就是我所拥有的:

  unique(fitted.values.elec[, 1])
1                         5.858684
2                         3.058384
3                         7.387295
4                         4.890524
5                         4.969836
6                         5.988356
7                         7.337252
8                         4.892035
9                         3.980916
10                        6.845760
11                        5.118041
12                        5.581330
13                        4.492655
14                        5.453386
15                        5.914754
16                        5.725895
17                        4.105544
18                        4.937531
19                        6.246537
20                        7.240994
21                        3.968855
22                        7.011589
23                        3.606612
24                        4.785006

这就是我想要得到的:

  unique(fitted.values.elec[, 1])
1                         5.858684
2                         3.058384
3                         7.387295
4                         4.890524
5                         4.969836
6                         5.988356
7                         7.337252
8                         4.892035
9                         3.980916
10                        6.845760
11                        5.118041
12                        5.581330
13                        4.492655
14                        5.453386
15                        5.914754
16                        5.725895
17                        4.105544
18                        4.937531
19                        6.246537
20                        5.725895
21                        7.240994
22                        3.968855
23                        7.011589
24                        3.606612
25                        4.785006

这是我实际得到的:

> dput(fitted.values.elec)
structure(c(5.8586839266439, 5, 725895, 3.96885481552305, 3.05838393273725, 
5, 725895, 7.01158940397222, 7.38729508196495, 5, 725895, 3.60661157024705, 
4.89052437902574, 5, 725895, 4.78500551267813, 4.9698364008177, 
5, 725895, 3.96885481552305, 5.98835616438236, 5, 725895, 7.01158940397222, 
7.33725247524616, 5, 725895, 3.60661157024705, 4.89203539822832, 
5, 725895, 4.78500551267813, 3.9809160305324, 5, 725895, 3.96885481552305, 
6.84575955265579, 5, 725895, 7.01158940397222, 5.11804123711197, 
5, 725895, 3.60661157024705, 5.58132956152646, 5, 725895, 4.78500551267813, 
4.49265477439422, 5, 725895, 3.96885481552305, 5.45338645418218, 
5, 725895, 7.01158940397222, 5.91475409835944, 5, 725895, 3.60661157024705, 
5.72589531680329, 5, 725895, 4.78500551267813, 4.10554371001916, 
5, 725895, 3.96885481552305, 4.93753123438183, 5, 725895, 7.01158940397222, 
6.2465373961208, 5, 725895, 3.60661157024705, 7.24099378881861, 
5, 725895, 4.78500551267813), .Dim = c(4L, 20L))

标签: r

解决方案


你可以试试这个——

result <- c(fitted.values.elec[1, ][1:20], 5.725895, fitted.values.elec[1, ][-(1:20)])

它从第一行选择前 20 个值,包括 5.725895,然后是剩余值。


推荐阅读