Hvordan søke funksjoner på rader og kolonner i R

November 1  by Eliza

I R, kan du bruke den gjelder () -funksjonen til å bruke en funksjon over hver rad eller kolonne i en matrise eller dataramme. Dette viser noen svært praktiske muligheter.

Telle i R bruke søke-funksjonen

Tenk deg at du telte fugler i hagen din på tre forskjellige dager og lagret tallene i en matrise som dette:

> Teller <- matrise (c (3,2,4,6,5,1,8,6,1), Ncol = 3)
> colnames (teller) <- c ('spurv', 'due', 'kråke')
> teller
spurv due kråke
[1,] 3 6 8
[2,] 2 5 6
[3,] 4 1 1

Hver kolonne representerer en annen art, og hver rad representerer en annen dag. Nå vil du vite maksimumstallet per arter på en gitt dag. Du kan konstruere en for løkke til å gjøre det, men ved anvendelse gjelder (), gjør du dette i bare en linje med kode:

> Gjelder (teller, to, maks)
spurv due kråke
4 6 8

Den gjelder () -funksjonen returnerer en vektor med maksimum for hver kolonne og bekvemt bruker kolonnenavnene som navn for denne vektoren også. Hvis R doesnâ € ™ t finne navn til den dimensjonen over hvilke gjelder () kjører, går det en ikke navngitt objekt i stedet.

La oss € ™ s ta en titt på hvordan dette gjelder () -funksjonen fungerer. I de foregående linjer med kode, brukte du tre argumenter:

  • Objektet på hvor funksjonen må brukes: I dette tilfellet, ita € ™ s matrise teller.
  • Dimensjonen eller indeks over hvilke funksjonen må brukes: Tallet 1 betyr rad-klok, og nummer 2 betyr kolonnevis. Her bruker vi en funksjon over søylene. I tilfelle av mer-dimensjonale grupper, kan denne indeksen være større enn to.
  • Navnet på funksjonen som skal brukes: Du kan bruke anførselstegn rundt funksjonsnavnet, men du dona € ™ t må. Her bruker vi funksjonen max. Legg merke til at det ikke er noen parentes trengs etter funksjonsnavnet.

Den gjelder () funksjon som deler opp matrisen i rader. Husk at hvis du velger en enkelt rad eller kolonne, R vil, som standard, forenkle det til en vektor. Den gjelder () -funksjonen bruker så disse vektorene én etter én som et argument til funksjonen du har angitt. I så fall må den anvendte funksjon for å være i stand til å håndtere vektorer.

Legg ekstra argumenter til søke-funksjonen

La oss € ™ s gå tilbake til vårt eksempel fra forrige avsnitt: Tenk deg at du didnâ € ™ t lete etter duer den andre dagen. Dette betyr at for den dagen, dona du € ™ t har noen data, slik at du må sette denne verdien til NA som dette:

> Teller [2, 2] <- NA

Hvis du bruker den max funksjon på kolonnene i denne matrisen, får du følgende resultat:

> Gjelder (teller, to, maks)
spurv due kråke
4 NA 8

Thatâ € ™ s ikke hva du ønsker. For å håndtere de manglende verdier, må du bestå argumentet na.rm til maks funksjon i den gjelder () samtale (se kapittel 4). Heldigvis, kan dette gjøres enkelt i R. Du må bare legge til alle ekstra argumenter til funksjonen som ekstra argumenter gjelder () samtale, som dette:

> Gjelder (teller, to, maks, na.rm = TRUE)
spurv due kråke
4 6 8

Du kan passere noen argumenter du ønsker å funksjonen i gjelde () kall ved å bare legge dem mellom parentes etter de tre første argumentene.