Video: Inside the mind of a master procrastinator | Tim Urban 2024
Statistici moeten vaak gegevensmonsters nemen en vervolgens statistieken berekenen. Een voorbeeld nemen is gemakkelijk met R omdat een steekproef eigenlijk niets meer is dan een subset van gegevens. Om dit te doen, gebruik je sample (), waarbij een vector als invoer wordt gebruikt; dan vertel je hoeveel monsters je uit die lijst moet halen.
Stel dat je rollen van een dobbelsteen wilt simuleren en je wilt tien resultaten behalen. Omdat de uitkomst van een enkele worp een cijfer is tussen een en zes, ziet uw code er zo uit:
U vertelt sample () om tien waarden te retourneren, elk in het bereik 1: 6. Omdat elke rol van de dobbelsteen onafhankelijk is van elke andere rol van de dobbelsteen, neem je een sample met vervanging. Dit betekent dat u één monster uit de lijst neemt en de lijst in de oorspronkelijke staat terugzet (met andere woorden, u plaatst het element dat u zojuist hebt teruggetrokken in de lijst).
Omdat de retourwaarde van de sample () -functie een willekeurig bepaald getal is, krijgt u elke keer als u deze functie herhaaldelijk probeert verschillende resultaten. Dit is in de meeste gevallen het juiste gedrag, maar soms wilt u mogelijk herhaalbare resultaten elke keer dat u de functie uitvoert.
Meestal gebeurt dit alleen als u uw code ontwikkelt en test, of als u zeker wilt weten dat iemand anders uw code kan testen en dezelfde waarden krijgt als u. In dit geval is het gebruikelijk om een zgn.
seed-waarde op te geven.
Maar als u het zaad niet instelt, tekent R uit de huidige status van de willekeurige nummergenerator (RNG). Bij het opstarten kan R een willekeurige seed instellen om de RNG te initialiseren, maar elke keer dat je dit belt, begint R met de volgende waarde in de RNG-stream. U kunt de Help lezen voor? RNG voor meer informatie.
In R, gebruikt u de set. seed () functie om uw startwaarde voor zaad te specificeren. Het argument om in te stellen. seed () is een geheel getal. >> instellen. seed (1)> sample (1: 6, 10, replace = TRUE) [1] 2 3 4 6 2 6 6 4 4 1
Als je nog een sample trekt, zonder een seed in te stellen, krijg je een andere set resultaten, zoals je zou verwachten: >> sample (1: 6, 10, replace = TRUE) [1] 2 2 5 3 5 3 5 6 3 5
Nu, om die set te demonstreren.seed () stelt de RNG in feite opnieuw in, probeer het opnieuw. Maar stel deze keer het zaad opnieuw in: >> instellen. seed (1)> sample (1: 6, 10, replace = TRUE) [1] 2 3 4 6 2 6 6 4 4 1
U krijgt exact dezelfde resultaten als de eerste keer dat u set gebruikte. zaad (1).
U kunt sample () gebruiken om voorbeelden uit de dataframe iris te nemen. In dit geval wilt u mogelijk het argument replace = FALSE gebruiken. Omdat dit de standaardwaarde is van het vervangingsargument, hoeft u het niet expliciet te schrijven: >> instellen. seed (123)> indexindex [1] 44 119 62 133 142> iris [index,] Sepal. Lengte Sepal. Breedte Petal. Lengte bloemblaadje. Breedte Soort 44 5. 0 3. 5 1. 6 0. 6 setosa 119 7. 7 2. 6 6. 9 2. 3 virginica 62 5. 9 3. 0 4. 2 1. 5 versicolor 133 6. 4 2. 8 5. 6 2. 2 virginica 142 6. 9 3. 1 5. 1 2. 3 virginica