我想知道如何通过列将元素追加到矩阵中。我的意思是,如果我有一个矩阵:
A =
a
b
c
d
我想在矩阵A的底部添加一个元素e。这样我就有了
a
b
c
d
e
其中a,b,...也可以是矢量。
我试图在for循环中实现它。
谢谢。
答案 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
>