将多行R矩阵设置为相同的值

时间:2016-01-14 21:17:07

标签: r matrix

m <- matrix(ncol=3,nrow=3)
index <- c(1,3)
row <- c(F,F,T)
m[index,] <- row

我想得到矩阵

F F T
NA NA NA
F F T

但相反,值是垂直分配的

F T F
NA NA NA
F T F

我已经尝试过转置和我能想到的所有内容,但我无法弄清楚如何设置所有行等于向量而不使用丑陋的for循环。< / p>

1 个答案:

答案 0 :(得分:1)

R跟在column-major order之后,因此矩阵中的值由列填充(而不是按照您的意图按行填充)。试试这个:

m[index,]<-rep(row,each=length(index))
#      [,1]  [,2] [,3]
#[1,] FALSE FALSE TRUE
#[2,]    NA    NA   NA
#[3,] FALSE FALSE TRUE