2016-04-07 18 views
-1

"a" ist eine Matrix.Ändern Sie einige Werte der Matrix zu einer neuen Matrix

a<-matrix(1:20,5) 

Ich mag die erste Spalte von „a“ in 1 ändern, um eine neue Matrix „b“ zu bilden, und ich muß auch halten „a“ wie es war.

Jetzt kann ich nur dieses Ziel durch folgenden Code erreichen:

b<-a 
b[,1]=1 

Wie kann ich dieses Problem lösen mit nur einem Satz Code?

+0

Darf ich fragen, warum Sie sich interessieren? Ästhetik, Neugier, ...? (@ Julius Lösung ist nett, aber eigentlich mehr Zeichen als 'b <- a; b [, 1] <- 1 '...) –

+0

@BenBolker Vielleicht um Zeit zu sparen und einfacher – lightsnail

+0

@BenBolker, wenn Sie diese Frage denken ist zu ursprünglich und albern, könntest du mir mit einem kleinen komplizierten helfen: http://stackoverflow.com/questions/36459958/match-list-to-rows-of-matrix-in-r Danke! – lightsnail

Antwort

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 

und in diesem Fall auch cbind(1, a[, -1]).

+0

Vielen Dank! Beide sehen gut aus. @Julius – lightsnail

Verwandte Themen