Video: ProgeCAD 2018 Nyheter 2024
Vektorfunktioner är en mycket användbar egenskap hos R, men programmerare som är vana vid andra språk har ofta problem med detta koncept först. En vektoriserad funktion fungerar inte bara på ett enda värde, men på en hel vektor av värden samtidigt.
Din naturliga reflex som programmerare kan vara att slinga över alla värden på vektorn och tillämpa funktionen, men vektorisering gör det onödigt. Lita på oss: När du börjar använda vektorisering i R, hjälper det att förenkla din kod.
För att försöka vektoriserade funktioner måste du skapa en vektor. Det gör du genom att använda funktionen c (), som står för concatenate . De faktiska värdena separeras med kommatecken.
Här är ett exempel: Anta att Granny spelar basket med sin vän Geraldine, och du håller ett betyg av Granny's antal korgar i varje spel. Efter sex matcher vill du veta hur många korgar Granny har gjort hittills denna säsong. Du kan sätta dessa siffror i en vektor, så här:
För att hitta det totala antalet korgar Granny gjort, skriver du bara följande: >> summa (korgar av. Granny) [1] 38
Du kan få samma resultat genom att gå över vektornumret efter antal, och lägg till varje nytt tal till summan av föregående nummer, men den metoden kräver att du skriver mer kod och det tar längre tid att beräkna. Du kommer inte märka det på bara sex nummer, men skillnaden blir uppenbar när du måste summera några tusen av dem.
I detta exempel på vektorisering använder en funktion hela vektorn för att ge dig ett resultat. Beviljas, det här exemplet är trivialt (du kanske har gissat att summan () skulle uppnå samma mål), men för andra funktioner i R kan vektoriseringen vara mindre uppenbar.
Ett mindre uppenbart exempel på en vektoriserad funktion är funktionen pasta (). Om du gör en vektor med förnamnen på familjemedlemmarna kan klistra in () lägga till efternamnet med dem alla med ett kommando, som i följande exempel: >> förnamn klistra in (förnamn, efternamn) [1] "Joris Meys" "Carolien Meys" "Koen Meys"R tar vektorns förnamn och klistrar därefter efternamnet i varje värde. Hur coolt är inte det? I själva verket kombinerar R två vektorer. Den andra vektorn - i det här fallet, efternamn - är bara ett värde långt. Det värdet får
återvunnet
med funktionen pasta () så länge som nödvändigt.
Du kan också ge R två längre vektorer, och R kommer att kombinera dem med element, så här: >> Författare efternamn klistra (författare, efternamn) [1] "Andrie de Vries" "Joris Meys" > Ingen komplicerad kod behövs.Allt du behöver göra är att göra vektorerna och placera dem i funktionen.