Video: Wytrzymałość prądowa przewodów elektrycznych - eksperyment 2024
Når du bruker funksjoner som argumenter i R, er det noen ganger nødvendig å matche funksjoner. Dette betyr også at hvis du har et objekt med samme navn som funksjonen du vil bruke, vil denne hele konstruksjonen ikke fungere. Anta at du hadde den ikke-så-klare ideen om å lage en vektor med den relative gevinsten til et par runder med poker som dette: >> runde <- c (0, 48, -0, 52, 1. 88) < Hvis du prøvde å ringe addPercent () med FUN-argumentet på denne vektoren, vil du få følgende feil:
>> addPercent (runde, FUN = runde) Feil i addPercent (runde, FUN = runde): kunne ikke finne funksjonen "FUN"
I stedet for å passere koden for den runde funksjonen, R passerer vektorrunden som FUN-argumentet. For å unngå slike problemer kan du bruke en spesiell funksjon, matche. morsom (), i kroppen av addPercent (), slik:
addPercent <- funksjon (x, mult = 100, FUN, …) {FUN <- match. morsomt (FUN) prosent <- fUN (x * mult, …) lim (prosent, "%", sep = ")}Denne funksjonen vil se etter en funksjon som samsvarer med navnet rundt og kopiere den koden til FUN argumentet istedenfor vektorrunden. Som en tilleggsbonus kan matchen.gam () også bruke deg til en tegneobjekt som argumentet, slik at spesifisering av FUN = 'round' fungerer nå også.
Alle innfødte R-funksjoner bruker Match. Fun () til dette formålet, og det anbefales at du gjør det samme hvis du skriver kode som skal brukes av andre. Men passerende funksjoner fungerer fint uten å bruke kamp. gøy (), så lenge du bruker fornuftige navn til de andre objektene i arbeidsområdet.