Hoe te Waarden Ga uit van vectoren in R

Vectoren zou nogal onpraktisch zijn als je niet kon opzoeken en te manipuleren individuele waarden. U kunt deze taken eenvoudig uitvoeren met behulp van R's geavanceerde, krachtige indexering systeem.

Hoe R doet indexeren

Telkens R toont een vector, wordt een aantal zoals [1] voor de uitvoer. In dit voorbeeld [1] geeft aan waar de eerste positie van de vector.

Dit aantal wordt de index van die waarde. Als u een langere vector - laten we zeggen, met de nummers van 1 tot 30 - zie je meer indices. Beschouw dit voorbeeld:

> Getallen <- 30: 1
> Nummers
[1] 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14
[18] 13 12 11 10 9 8 7 6 5 4 3 2 1

Hier zie je dat R telt 13 als de 18 waarde in de vector. Aan het begin van elke regel, R vertelt u de index van de eerste waarde in die lijn.

Als u probeert dit voorbeeld op uw computer, kunt u een andere index aan het begin van de lijn te zien, afhankelijk van de breedte van je console.

Hoe om waarden te extraheren uit een vector in R

Die haakjes ([]) illustreren een ander sterk punt van R. Ze vertegenwoordigen een functie die u kunt gebruiken om een ​​waarde van die vector halen. U kunt de vijfde waarde van het voorgaande nummer vector als dit te krijgen:

> Nummers [5]
[1] 26

Oke, dit voorbeeld is niet al te indrukwekkend, maar de functie beugel neemt vectoren als argumenten. Wilt u meer dan één nummer te selecteren, kunt u simpelweg een vector van indices als een argument in de beugels, zoals zo:

> Nummers [c (5,11,3)]
[1] 26 20 28

R geeft een vector met de nummers in de volgorde waarin u gevraagd. Ja, kunt u de indexen gebruiken om de waarden te bestellen zoals u dat wilt.

U kunt ook de indices die u wilt ophalen in een andere vector en geef die vector als argument, zoals in het volgende voorbeeld te slaan:

> Indices <- c (5,11,3)
> Nummers [indices]
[1] 26 20 28

U kunt indices gebruiken om waarden dalen van een vector ook. Als u wilt dat alle nummers behalve voor de derde waarde, kun je dat doen met de volgende code:

> Nummers [-3]
[1] 30 29 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13
[18] 12 11 10 9 8 7 6 5 4 3 2 1

Ook hier kunt u een complete vector van indices gebruiken. Wilt u de eerste 20 nummers te verdrijven, gebruik deze code:

> Nummers [- (01:20)]
[1] 10 9 8 7 6 5 4 3 2 1

Wees voorzichtig om haakjes toe te voegen rond de reeks. Als je dat niet doet, zal R interpreteren dat als wat betekent dat de volgorde van -1 tot 20, dat is niet wat je wilt hier. Als je die code te proberen, de volgende foutmelding krijgt:

> Nummers [-1: 20]
Fout in aantallen [-1: 20]: alleen 0 kan worden gemengd met negatieve indices

Deze boodschap maakt je afvragen wat de index 0 is. Nou, het is letterlijk niets. Als het is de enige waarde in de index vector, krijg je een lege, of nul-lengte, vector terug, wat teken je het geeft; anders zal het geen effect.

Je mag geen positieve en negatieve indexwaarden mengen, dus ofwel selecteert u een aantal waarden of drop ze.

U kunt veel meer met indices doen - ze helpen bij het schrijven beknopt en snel code.