Hur man använder Standardoperationer i en matris i R

October 27

Förmodligen den starkaste inslag i R är dess förmåga att hantera komplexa matrisoperationer i ett enkelt och optimerat sätt. Eftersom en stor del av statistiken kokar ner till matrisoperationer, itâ € s bara naturligt att R älskar att knapra dessa siffror.

När man talar om operationer på matriser, kan du behandla antingen elementen i matrisen eller hela matrisen som värdet du verka på. Den skillnaden är ganska uppenbart när man jämför till exempel införliva en matris och lägga ett enda nummer (eller skalär) till en matris.

När införliva arbetar du med hela matrisen. När du lägger till en skalär till en matris, du tillägga att skalär till varje element i matrisen.

Du lägger till en skalär till en matris genom att helt enkelt använda tillsats operatören, +, som den här:

> First.matrix + 4
[1] [2] [3] [4]
[1,] 5 8 11 14
[2,] 6 9 12 15
[3,] 7 10 13 16

Du kan använda alla andra aritmetiska operatorer på exakt samma sätt för att utföra en operation på alla delar av en matris.

Skillnaden mellan operationer på matriser och element blir mindre tydlig om du talar om att lägga matriser tillsammans. I själva verket är tillsatsen av två matriser tillsatsen av de svarande elementen. Så, måste du se till att båda matriserna har samma mått.

Letâ € s titta på ett annat exempel: Säg att du vill lägga till 1 till den första raden, 2 till den andra raden, och 3 till den tredje raden i matrisen first.matrix. Du kan göra detta genom att konstruera en matris second.matrix som har fyra kolumner och tre rader och som har 1, 2 och 3 som värden i den första, andra och tredje raderna, respektive.

Följande kommando gör så använder återvinning av det första argumentet av matrisen funktion:

> Second.matrix <- matrix (1: 3, nrow = 3, Ncol = 4)

Med tillägg operatören, kan du lägga till både matriser tillsammans, så här:

> First.matrix + second.matrix
[1] [2] [3] [4]
[1,] 2 5 8 11
[2,] 4 7 10 13
[3,] 6 9 12 15

Detta är lösningen din matte lärare skulle godkänna om hon bett dig att göra matris tillsättningen av den första och andra matrisen. Och ännu mer, om dimensioner båda matriserna är inte samma sak, R kommer att klaga och vägra att utföra operationen, vilket visas i följande exempel:

> First.matrix + second.matrix [, 1: 3]
Fel i first.matrix + second.matrix [, 1: 3]: icke-form arrayer

Men vad skulle hända om vi istället för att lägga till en matris, lagt till dig en vektor? Ta en titt på resultatet av följande kod:

> First.matrix + 1: 3
[1] [2] [3] [4]
[1,] 2 5 8 11
[2,] 4 7 10 13
[3,] 6 9 12 15

Inte bara R inte klaga dimensioner, men det återvinner vektorn över värdena för de matriser. I själva verket, R behandlar matrisen som en vektor i detta fall genom att helt enkelt ignorera dimensionerna. Så i det här fallet, don du € t använda matris tillägg men enkel (vektoriserade) tillägg.

Som standard R fyller matriser kolumn-wise. När R läser en matris, läser den också kolumn-wise. Detta har stor betydelse för arbetet med matriser. Om du donâ € t hålla medveten om detta, R kan bita dig i benet nastily.