2016-04-07 18 views
-1

"a" bir matristir.Yeni bir matris oluşturmak için matrisin bazı değerlerini değiştirin

a<-matrix(1:20,5) 

"A" nın 1 içine yeni bir matris oluşturmak için "b" ilk sütununu değiştirmek istiyorum ve de öyleydi "a" olarak tutmak gerekir.

b<-a 
b[,1]=1 

nasıl sadece tek cümlelik kodu ile bu sorunu çözebilir:

Şimdi sadece aşağıdaki kodla bu hedefe ulaşabilir?

+0

Neden umursadığını sorabilir miyim? Estetik, merak, ...? (@ Julius'un çözümü güzel ama aslında daha fazla karakter "b <- a; b [, 1] <- 1 '...) –

+0

@BenBolker Belki de bu soruya daha fazla zaman ve daha kolay tasarruf etmek için – lightsnail

+0

@BenBolker çok doğal ve aptalca, biraz karmaşık bir şekilde bana yardımcı olabilir misiniz: http://stackoverflow.com/questions/36459958/match-list-to-rows-of-matrix-in-r Teşekkür ederim! – lightsnail

cevap

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 

ve bu durumda ayrıca cbind(1, a[, -1]).

+0

Çok teşekkür ederim! İkisi de güzel görünüyor. @Julius – lightsnail