Video: Section 6 2025
R probeert standaard altijd om de objecten te vereenvoudigen tot het kleinst mogelijke aantal dimensies wanneer u de haakjes gebruikt om waarden uit een array te extraheren. Dus als u slechts één kolom of rij vraagt, maakt R dat een vector door een dimensie te laten vallen.
Net als bij vectoren kunt u meerdere getallen in de indices combineren. Als u de eerste en derde rij van de matrix wilt laten vallen, kunt u dit als volgt doen:
Wacht even … Er is maar één index. R retourneert hier geen matrix - er wordt een vector geretourneerd!
U kunt R dwingen alle dimensies te behouden door de extra argumentval van de indexeerfunctie te gebruiken. Om de tweede rij als een matrix terug te krijgen, doet u het volgende: >> eerst. matrix [2, drop = FALSE] [1] [2] [3] [4] [1,] 2 5 8 11
Dit lijkt pure magie, maar het is niet zo moeilijk. Je hebt nu drie posities tussen de haakjes, allemaal gescheiden door komma's. De eerste positie is de rij-index. De tweede positie is de kolomindex. Maar wat dan?
Eigenlijk werken de vierkante haken als een functie, en de rij-index en kolomindex zijn argumenten voor de vierkante haken. Nu voeg je een extra argument drop toe met de waarde FALSE. Zoals je met elke andere functie doet, scheid je de argumenten met komma's. Zet dit alles samen, en je hebt de code hier getoond.
Het vervangen van waarden in een matrix gebeurt op een vergelijkbare manier als het vervangen van waarden in een vector. Om de waarde in de tweede rij en de derde kolom van eerst te vervangen. matrix met 4, gebruik je de volgende code.
Je kunt ook een hele reeks wijzigen rij of kolom met waarden door de andere dimensie niet op te geven. Houd er rekening mee dat waarden worden gerecycled, dus als u de tweede rij wilt wijzigen in reeks 1, 3, 1, 3, kunt u eenvoudig het volgende doen: >> eerst. matrix [2,] eerst. matrix [1] [2] [3] [4] [1,] 1 4 7 10 [2,] 1 3 1 3 [3,] 3 4 9 12
Je kunt ook een subset vervangen van waarden in de matrix door een andere matrix. Je hoeft niet eens de waarden als een matrix op te geven - een vector zal dat doen. Bekijk het resultaat van de volgende code:>> eerst. matrix [1: 2, 3: 4] als eerste. matrix [1] [2] [3] [4] [1,] 1 4 8 2 [2,] 1 3 4 1 [3,] 3 4 9 12
Hier wijzigt u de waarden in de eerste twee rijen en de laatste twee kolommen van de nummers 8, 4, 2 en 1.
R leest en schrijft matrices standaard kolomgewijs.Dus als u een vector in een matrix of subset van een matrix plaatst, wordt deze ongeacht de methode in kolomvorm geplaatst. Als u dit rijgewijs wilt doen, moet u eerst een matrix construeren met de waarden met behulp van het argument byrow = TRUE. Vervolgens gebruikt u deze matrix in plaats van de oorspronkelijke vector om de waarden in te voegen.
