替换R中的矩阵列

时间:2016-06-09 12:49:42

标签: r matrix replace

我在R

中创建了一个矩阵
C<-matrix(c(0),nrow=6,ncol=6,byrow = FALSE)

现在我想用值1替换矩阵的第一列,用标准正态随机变量替换第二和第三列,用剩余矩阵的值替换最后三列。

2 个答案:

答案 0 :(得分:0)

C<-matrix(c(0),nrow=6,ncol=6,byrow = FALSE)
other.matrix<-matrix(runif(18), nrow = 6, ncol = 3)

C[,1]<-1
C[,3]<-rnorm(6)
C[,4:6]<-other.matrix

要在R中访问矩阵的行和列(以及data.frames),您可以使用[]括号和i,j表示法,其中i是行,j是列。例如,矩阵C的第3行和第2列可以使用

进行寻址
 C[3,2]
 #[1] 0

使用<-为您选择的行/列分配新值。

答案 1 :(得分:0)

对于前三列,您可以使用

C<-matrix(c(0),nrow=6,ncol=6,byrow = FALSE)
C[ ,1] <- 1; C[ ,2] <- rnorm(6); C[ ,3] <- rnorm(6)

我们现在说你的另一个矩阵叫做 D ,看起来像

          [,1]       [,2]       [,3]      [,4]      [,5]      [,6]      [,7]
[1,] 0.6527716 0.81793644 0.67138209 0.3175264 0.1067119 0.5907180 0.4619992
[2,] 0.2268516 0.90893913 0.62917211 0.1768426 0.3659889 0.0339911 0.2322981
[3,] 0.9264116 0.81693835 0.59555163 0.6960895 0.1667125 0.6631861 0.9718530
[4,] 0.2613363 0.06515864 0.04971742 0.7277188 0.2580444 0.3718222 0.8028141
[5,] 0.2526979 0.49294947 0.97502566 0.7962410 0.8321882 0.2981480 0.7098733
[6,] 0.4245959 0.95951112 0.45632856 0.8227812 0.3542232 0.2680804 0.7042317

现在假设您希望 D 中的第3,4和5列作为 C 中的最后三列,然后您可以简单地说

C[ ,4:6] <- D[ ,3:5]

结果是

     [,1]        [,2]       [,3]       [,4]      [,5]      [,6]
[1,]    1 -1.76111875  0.4621061 0.67138209 0.3175264 0.1067119
[2,]    1  0.40036245  0.9054436 0.62917211 0.1768426 0.3659889
[3,]    1 -1.03238266 -0.6705829 0.59555163 0.6960895 0.1667125
[4,]    1 -0.47064774  0.3119684 0.04971742 0.7277188 0.2580444
[5,]    1 -0.01436411 -0.4688032 0.97502566 0.7962410 0.8321882
[6,]    1 -1.18711832  0.8227810 0.45632856 0.8227812 0.3542232

需要注意的一点是,这需要 C D 之间的行数相同。