如何从矩阵中复制一行并将其设置为r中另一个矩阵中的行?
我有两个矩阵如何从矩阵中复制一行并将其设置为r中另一个矩阵中的行?,r,matrix,R,Matrix,我有两个矩阵sampleMatrix,它有2行9列和oldCase,它有1行9列。最初,矩阵如下所示: sampleMatrix: [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [1,] NA NA NA NA NA NA NA NA NA [2,] NA NA NA NA NA NA NA NA NA oldCase: Pn Te VTB TB
sampleMatrix
,它有2行9列和oldCase
,它有1行9列。最初,矩阵如下所示:
sampleMatrix:
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
[1,] NA NA NA NA NA NA NA NA NA
[2,] NA NA NA NA NA NA NA NA NA
oldCase:
Pn Te VTB TB Sm LC Br XR Dy
0 38.73447 0 1 1 0 0 1 0
我想从oldCase
复制整行,并将其设置为sampleMatrix
的第一行。因此,我:
sampleMatrix:
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
[1,] 0 38.73447 0 0 1 1 0 1 0
[2,] NA NA NA NA NA NA NA NA NA
我可以运行一个循环并直接复制列值,但我想知道是否有一种更简洁的方法可以使用r中的特殊函数来实现这一点。感谢您的帮助。谢谢:)正如@allan cameron的评论: 您的代码示例:
sampleMatrix <- matrix(rep(NA, 18), nrow=2)
sampleMatrix
将oldCase
的第1行(所有列)重新分配到sampleMatrix
的第1行(所有列):
sampleMatrix[1,] <- oldCase[1,]
sampleMatrix
sampleMatrix[1,]
oldCase <- matrix(c(0,38.73447,0,1,1,0,0,1,0), nrow=1)
colnames(oldCase) <- c("Pn","Te","VTB","TB","Sm","LC","Br","XR","Dy")
oldCase
Pn Te VTB TB Sm LC Br XR Dy
[1,] 0 38.73447 0 1 1 0 0 1 0
sampleMatrix[1,] <- oldCase[1,]
sampleMatrix
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
[1,] 0 38.73447 0 1 1 0 0 1 0
[2,] NA NA NA NA NA NA NA NA NA