将元素添加到矩阵中的列

时间:2014-08-21 01:17:21

标签: r matrix append

我想知道如何通过列将元素追加到矩阵中。我的意思是,如果我有一个矩阵:

A =

a
b
c
d

我想在矩阵A的底部添加一个元素e。这样我就有了

a
b
c
d
e 

其中a,b,...也可以是矢量。

我试图在for循环中实现它。

谢谢。

2 个答案:

答案 0 :(得分:0)

您可以使用rbind

A <- rbind(A, e).

如果矩阵很大,它可能在循环中变慢。如果您事先知道大小,最好预先分配矩阵,然后分配行A[i,] <- e,例如。

答案 1 :(得分:0)

您可以将矩阵转换为数据帧。然后,您可以轻松添加其他行。如果需要,您可以将其转换回矩阵:

mm
      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11]
 [1,]    0    0    0    0    0    0    0    0    0     0     0
 [2,]    0    1    2    3    4    5    6    7    8     9    10
 [3,]    0    2    4    6    8   10   12   14   16    18    20
 [4,]    0    3    6    9   12   15   18   21   24    27    30
 [5,]    0    4    8   12   16   20   24   28   32    36    40
 [6,]    0    5   10   15   20   25   30   35   40    45    50
 [7,]    0    6   12   18   24   30   36   42   48    54    60
 [8,]    0    7   14   21   28   35   42   49   56    63    70
 [9,]    0    8   16   24   32   40   48   56   64    72    80
[10,]    0    9   18   27   36   45   54   63   72    81    90
[11,]    0   10   20   30   40   50   60   70   80    90   100
> dd = data.frame(mm)
> dd
   X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11
1   0  0  0  0  0  0  0  0  0   0   0
2   0  1  2  3  4  5  6  7  8   9  10
3   0  2  4  6  8 10 12 14 16  18  20
4   0  3  6  9 12 15 18 21 24  27  30
5   0  4  8 12 16 20 24 28 32  36  40
6   0  5 10 15 20 25 30 35 40  45  50
7   0  6 12 18 24 30 36 42 48  54  60
8   0  7 14 21 28 35 42 49 56  63  70
9   0  8 16 24 32 40 48 56 64  72  80
10  0  9 18 27 36 45 54 63 72  81  90
11  0 10 20 30 40 50 60 70 80  90 100
> dd[12,]=c(1,2,3,4,5,6,7,8,9,8,9)
> dd
   X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11
1   0  0  0  0  0  0  0  0  0   0   0
2   0  1  2  3  4  5  6  7  8   9  10
3   0  2  4  6  8 10 12 14 16  18  20
4   0  3  6  9 12 15 18 21 24  27  30
5   0  4  8 12 16 20 24 28 32  36  40
6   0  5 10 15 20 25 30 35 40  45  50
7   0  6 12 18 24 30 36 42 48  54  60
8   0  7 14 21 28 35 42 49 56  63  70
9   0  8 16 24 32 40 48 56 64  72  80
10  0  9 18 27 36 45 54 63 72  81  90
11  0 10 20 30 40 50 60 70 80  90 100
12  1  2  3  4  5  6  7  8  9   8   9
> as.matrix(dd)
   X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11
1   0  0  0  0  0  0  0  0  0   0   0
2   0  1  2  3  4  5  6  7  8   9  10
3   0  2  4  6  8 10 12 14 16  18  20
4   0  3  6  9 12 15 18 21 24  27  30
5   0  4  8 12 16 20 24 28 32  36  40
6   0  5 10 15 20 25 30 35 40  45  50
7   0  6 12 18 24 30 36 42 48  54  60
8   0  7 14 21 28 35 42 49 56  63  70
9   0  8 16 24 32 40 48 56 64  72  80
10  0  9 18 27 36 45 54 63 72  81  90
11  0 10 20 30 40 50 60 70 80  90 100
12  1  2  3  4  5  6  7  8  9   8   9
>