Video: Statistical Programming with R by Connor Harris 2024
Soms moet u expliciet factoren in tekst of cijfers omzetten. Om dit te doen, gebruikt u de functies als. teken () of als. numeriek (). Converteer eerst uw richtingenvector in een factor genaamd richtingen. factor (zoals u eerder zag): >> richtingen richtingen. factor richtingen. factor [1] Noord-oost Zuid Zuid Niveaus: Oost Noord Zuid
Gebruik als. character () om een factor in een tekenvector om te zetten:
Wees zeer voorzichtig wanneer u factoren met numerieke niveaus omzet in een numerieke vector. De resultaten zijn misschien niet wat u verwacht.
Stel je bijvoorbeeld voor dat je een vector hebt die sommige testscore-resultaten aangeeft met de waarden c (9, 8, 10, 8, 9), die je converteert naar een factor: >> getallen <- factor (c (9, 8, 10, 8, 9))
Gebruik de str (): >> str (cijfers) factor met 3 niveaus om de interne weergave van getallen te bekijken "8 "," 9 "," 10 ": 2 1 3 1 2
Dit geeft aan dat R de waarden opslaat als c (2, 1, 3, 1, 2) met bijbehorende niveaus van c (" 8 "," 9 "," 10 ").
Als u getallen naar een karaktervector wilt converteren, zijn de resultaten vrijwel zoals u zou verwachten: >> als. teken (cijfers) [1] "9" "8" "10" "8" "9"
Als u echter gewoon als. numeriek (), uw resultaat is een vector van de interne niveau-representaties van uw factor en niet de oorspronkelijke waarden: >> als. numeriek (cijfers) [1] 2 1 3 1 2
De R-help bij? factor beschrijft een oplossing voor dit probleem. De oplossing is om de niveaus te indexeren met de factor zelf en vervolgens om te zetten in numeriek: >> als. numeriek (zoals teken (cijfers)) [1] 9 8 10 8 9
Dit is een voorbeeld van
geneste functiesin R, waarin u de resultaten van één functie doorgeeft aan een tweede functie. Geneste functies lijken een beetje op de Russische nestelpoppen, waarbij elk speeltje in de volgende zit:
De innerlijke functie, zoals. teken (cijfers), bevat de tekst c ("8", "9", "10").
De uiterlijke functie, zoals. numeriek (…), doet de uiteindelijke conversie naar c (9, 8, 10, 8, 9).