R-nummers van 1 tot 100

Mogelijk duplicaat:
Hoe genereer je een vector die een numerieke reeks bevat?

Hoe kan ik in R de lijst met getallen van 1 tot 100 krijgen? Andere talen hebben hiervoor een functie ‘bereik’. Het bereik van R doet iets heel anders.

> range(1,100)
[1]   1 100

Antwoord 1, autoriteit 100%

Uw fout is zoeken naar range, waarmee u het rangevan een vector krijgt, bijvoorbeeld:

range(c(10, -5, 100))

geeft

-5 100

Kijk in plaats daarvan naar de operator :om reeksen te geven (met een stapgrootte van één):

1:100

of je kunt de functie seqgebruiken om wat meer controle te hebben. Bijvoorbeeld,

##Step size of 2
seq(1, 100, by=2)

of

##length.out: desired length of the sequence
seq(1, 100, length.out=5)

Antwoord 2, autoriteit 2%

Als je de constructie nodig hebt voor een snel voorbeeld om mee te spelen, gebruik dan de operator :.

Maar als u dynamisch een vector/reeks van getallen maakt, gebruik dan seq() in plaats daarvan.

Stel dat u de vector/reeks van getallen van a tot b maakt met a:b, en u verwacht dat het een toenemende reeks is. Als b wordt geëvalueerd als kleiner dan a, krijg je een afnemende reeks, maar je krijgt er nooit een melding van en je programma blijft doorgaan met het uitvoeren van de verkeerde soort invoer.

In dit geval, als u seq() gebruikt, kunt u het teken van het argument byzo instellen dat het overeenkomt met de richting van uw reeks, en er wordt een fout gegenereerd als ze niet overeenkomen. Bijvoorbeeld

seq(a, b, -1)

veroorzaakt een fout voor a=2, b=6, omdat de codeur een afnemende reeks verwachtte.

Other episodes