Hvordan bruke den Påfør Familie av funksjoner i R
March 27 by Eliza
Hjelp for løkker har noen veldig viktige bivirkninger. Objektene du oppretter i for loop opphold i arbeidsområdet etterpå. Objekter du forandre i for loop endres i arbeidsområdet. Selv om dette kan være intensjonene for noen, for andre er dette en uønsket bivirkning av veien for løkker er implementert i R.
Ta en titt på følgende eksempel:
> Songline <- "Kom deg ut av drømmene mine ... '
> For (songline i 1: 5) print ('... Få inn i bilen min!')
I motsetning til hva du kan forvente, etter å ha kjørt denne koden, er verdien av songline ikke strengen "Kom deg ut av drømmene mine ... ', men nummer 5, som vist i produksjonen under:
> Songline
[1] 5
Selv om du aldri eksplisitt endret verdien av songline hvor som helst i koden, gjør R så implisitt når du utfører for loop. Hver iterasjon, reassigns R neste verdi fra vektoren til songline. . . i arbeidsområdet!
Ved å velge navn på variabler og identifikatoren med omhu, kan du unngå å kjøre inn i problemer. Når du skriver store skript, må du gjøre noen alvorlige bokføring for navnene for å unngå feil.
For å være helt korrekt, ved hjelp av en for løkke har en effekt på miljøet man arbeide i det øyeblikket. Hvis du bare bruker den for løkke i skript som du kjører i konsollen, vil effektene finne sted i arbeidsområdet. Hvis man bruker en for løkke i kroppen av funksjon, vil virkningen skje i løpet av miljøet i den funksjonen.
Her er den gode nyheten: R har en annen looping system som er svært kraftig, som er minst like raskt som for sløyfer (og noen ganger mye raskere), og - viktigst av alt - som ikke har bivirkninger av en for loop. Egentlig består dette systemet av en komplett familie av relaterte funksjoner, kjent som gjelder familien. Denne familien inneholder syv funksjoner, alt slutter med gjelde.
Familiens funksjoner
Før du begynner å bruke noen av funksjonene i det gjelder familie, her er de viktigste egenskapene til disse funksjonene:
- Hver og en av de gjelder funksjoner tar minst to argumenter: et objekt og en annen funksjon. Du passerer funksjon som et argument.
- Ingen av disse gjelder funksjoner har bivirkninger. Dette er den viktigste grunnen til å bruke dem !: Hvis du kan bruke en hvilken som helst søke funksjon i stedet for en for løkke, bruk søke løsning. Vær oppmerksom på at mulige bivirkninger av den anvendte funksjon ikke blir tatt hånd om av den gjelde familien.
- Hver søke funksjonen kan passere på argumenter til funksjonen som er gitt som argument. Det gjør at bruk av prikker argument.
- Alle funksjoner i gjelde familien returnerer alltid et resultat. Bruke gjelde familien er fornuftig bare hvis du trenger det resultatet. Hvis du ønsker å skrive meldinger til konsollen med print () eller katt () for eksempel, bruker gjelde familien er unødvendig.
Oppfylle tre av medlemmene
Si hei til å anvende (), sapply (), og lapply (), de mest brukte medlemmer av gjelde familien. Hver og en av disse funksjoner gjelder en annen funksjon for alle elementer i en gjenstand. Hva disse elementer er avhengig av objektet og funksjon.
Funksjon Navn | Objekter funksjons Fungerer På | Hva funksjons Sees som Elements | Resultat Type |
---|---|---|---|
gjelder | Matrix | Rader eller kolonner | Vektor, matrise, array, eller liste |
Array | Rader, kolonner, eller en hvilken som helst dimensjon | Vektor, matrise, array, eller liste | |
Dataramme | Rader eller kolonner | Vektor, matrise, array, eller liste | |
sapply | Vektor | Elements | Vektor, matrise eller liste |
Dataramme | Variabler | Vektor, matrise eller liste | |
Liste | Elements | Vektor, matrise eller liste | |
lapply | Vektor | Elements | Liste |
Dataramme | Variabler | Liste | |
Liste | Elements | Liste |
- • Hvordan bruke den spanske Preposisjon En
- • Hvordan bruke den Problem Steps Recorder i Windows 7
- • Hvordan bruke den femte-Fret Tuning Method på en Bass Guitar
- • Hvordan bruke den Stochastic Oscillator tolker Trading Pris
- • Hvordan bruke den Pictures Library å spille en lysbildefremvisning i Windows 7
- • Hvordan bruke den bærbare on a Plane
- • Hvordan bruke den Leafpad Text Editor på din Raspberry Pi
- • Hvordan bruke den endelige Command i Java
- • Hvordan bruke den pentatoniske skala i en Lead Guitar Solo