2016-04-07 121 views
-1

“a”是矩阵。更改矩阵的某些值以形成新矩阵

a<-matrix(1:20,5) 

我要改变的“A”到1,形成一个新的矩阵“B”的第一列,我也需要保持“一”,因为它是。

现在我也只能达到这个目标通过下面的代码:

b<-a 
b[,1]=1 

我该如何解决这个问题,只有一句话的代码?

+0

请问你为什么在意?美学,好奇心,...? (@朱利叶斯的解决方案是好的,但比'b其实更多字符< - A; B [,1] < - 1' ...) –

+0

@BenBolker也许为了节省时间,更简单 – lightsnail

+0

@BenBolker,如果你认为这个问题是太原生和愚蠢的,你能帮我一点点复杂的一个:http://stackoverflow.com/questions/36459958/match-list-to-rows-of-matrix-in-r谢谢! – lightsnail

回答

2
replace(a, col(a) == 1, 1) 
#  [,1] [,2] [,3] [,4] 
# [1,] 1 6 11 16 
# [2,] 1 7 12 17 
# [3,] 1 8 13 18 
# [4,] 1 9 14 19 
# [5,] 1 10 15 20 

并且在这种情况下也是cbind(1, a[, -1])

+0

非常感谢!两人看起来不错。 @Julius – lightsnail