Inhoudsopgave:
- Retourwaarden standaard
- De accolades, {}, vormen de spreekwoordelijke muur rond de functie, maar in sommige gevallen kunt u ze ook laten vallen. Stel dat je de kansen van een deel wilt berekenen. De kans dat iets gebeurt, is niet meer dan de kans dat het gebeurt, gedeeld door de kans dat het niet gebeurt. Dus, om de kansen te berekenen, kun je een functie als deze schrijven:
Video: Combinatoriek - Combinaties van r uit n - WiskundeAcademie 2024
Bij het transformeren van het script in R zijn niet alle elementen vereist. In feite is de instructie return () optioneel, omdat R altijd standaard de waarde van de laatste regel code in de hoofdtekst van de functie retourneert.
Retourwaarden standaard
Stel dat u bent vergeten om return (resultaat) toe te voegen aan de functie addPercent (). Wat zou er dan gebeuren? U kunt erachter komen of u de laatste regel van de functie addPercent () verwijdert, het bestand opslaat en het opnieuw verzamelt om het in de werkruimte te laden.
Elke wijziging die u in een functie aanbrengt, is alleen van kracht nadat u de aangepaste code naar de console hebt gestuurd. Dit zal het oude functieobject effectief overschrijven door een nieuw.
Als u addPercent (nieuwe. Nummers) opnieuw probeert, ziet u … niets. Blijkbaar doet de functie niets meer - maar dit is een illusie, zoals je kunt zien met de volgende code: >> print (addPercent (nieuwe. Nummers)) [1] "82. 2%" "2 5% "" 162% "" 40% "
In dit geval retourneert de laatste regel van de functie de waarde van het resultaat
onzichtbaar, , daarom ziet u dit alleen als u specifiek vraagt om print het. De waarde wordt onzichtbaar teruggegeven als gevolg van de toewijzing in de laatste regel. Omdat dit niet echt praktisch is, kunt u de toewijzing in de laatste regel weglaten en de functiecode als volgt wijzigen:
Deze functie werkt opnieuw Het lijkt misschien alsof return () volkomen nutteloos is, maar je hebt het echt nodig als je de functie voor het einde van de code in de body wilt afsluiten. Je kunt bijvoorbeeld een regel toevoegen aan de addPercent-functie die controleert of x numeriek is, en zo niet, geeft NULL als resultaat:
De muren breken
De accolades, {}, vormen de spreekwoordelijke muur rond de functie, maar in sommige gevallen kunt u ze ook laten vallen. Stel dat je de kansen van een deel wilt berekenen. De kans dat iets gebeurt, is niet meer dan de kans dat het gebeurt, gedeeld door de kans dat het niet gebeurt. Dus, om de kansen te berekenen, kun je een functie als deze schrijven:
Als een functie uit slechts één regel code bestaat, kunt u die regel gewoon achter de argumentlijst toevoegen zonder deze tussen accolades te plaatsen.R zal de code na de argumentenlijst als de hoofdtekst van de functie zien.
Je zou hetzelfde kunnen doen met de addPercent () functie door alles als volgt te nesten: >> addPercent <- functie (x) plakken (rond (x * 100, cijfers = 1), "%", sep = ")
Dat is een slim plan om de volgende persoon die die code leest een grote hoofdpijn te bezorgen. Het is een beetje minder slim plan als die volgende persoon jou is, en de kans groot is dat het zal zijn.
Opslaan ruimte in een functielichaam is veel minder belangrijk dan het leesbaar houden van de code, omdat ruimtebesparing u niets oplevert. Constructies als de oddsfunctie zijn alleen nuttig in zeer specifieke gevallen.