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>
答案 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