Video: Mannen bakom klimatalarmismen fälld för vetenskapligt bedrägeri 2024
Om uttalanden kan vara mycket användbara i R, som de finns i något programmeringsspråk,. Ofta vill du göra val och vidta åtgärder beroende på ett visst värde.
Definiera ett val i din kod är ganska enkelt: Om detta villkor är sant, utför sedan en viss uppgift. Många programmeringsspråk låter dig göra det med exakt dessa ord: om … då. R gör det ännu enklare: Du kan släppa ordet sedan och ange ditt val i ett if-uttalande.
Ett if-uttryck i R består av tre element:
-
Nyckelordet om
-
Ett enda logiskt värde mellan parenteser (eller ett uttryck som leder till ett enda logiskt värde)
-
A kodblock mellan hängslen som måste utföras när det logiska värdet är SANT
Här är en mycket liten funktion, priceCalculator (), som beräknar det pris du tar ut för en kund baserat på arbetstiden du gjorde för den kunden. Funktionen bör ta antalet timmar (timmar) och priset per timme (pph) som inmatning. Funktionen priceCalculator () kan vara så här:
priceCalculator <- funktion (timmar, pph = 40) {netto. pris <- timmar * pph round (netto. pris)}
Här är vad denna kod gör:
-
Med funktionssökord definierar du funktionen.
-
Allt mellan fästena är funktionens kropp (se kapitel 8).
-
Mellan parentesen anger du argumenttimmarna (utan ett standardvärde) och pph (med ett standardvärde på $ 40 per timme).
-
Du beräknar nettopriset genom att multiplicera timmar med pph.
-
Resultatet av det sista uttalandet i din funktion är det returnerade värdet. I det här fallet är det totala priset avrundat till dollarn.
Du kan släppa argumentet pph och bara multiplicera timmar med 40. Men det skulle innebära att om din kollega exempelvis använder en annan timtalsfrekvens, skulle han behöva ändra värdet i funktionens kropp för att kunna använda den. Det är bra kodningspraxis att använda argument med standardvärden för något värde som kan förändras. Att göra det gör en funktion mer flexibel och användbar.
Tänk nu att du har några stora kunder som ger dig mycket arbete. För att hålla dem lyckliga beslutar du att ge dem en minskning på 10 procent på priset per timme för beställningar som omfattar mer än 100 timmars arbete. Så om antalet arbetade timmar är större än 100 beräknar du det nya priset genom att multiplicera priset med 0. 9.
Du kan skriva det nästan bokstavligen i din kod så här:
priceCalculator <- function (timmar, pph = 40) {netto. pris 100) {netto. pris <- netto.pris * 0. 9} round (netto. pris)}
Kopiera den här koden i en skriptfil och skicka den till konsolen för att göra den tillgänglig för användning. Om du prövar den här funktionen kan du se att minskningen ges endast när antalet timmar är större än 100: >> prisberäkare (timmar = 55) [1] 2200> prisberäkare (timmar = 110) [1] 3960
Denna konstruktion är det vanligaste sättet att ange ett if-uttalande. Men om du bara har en kort kodkod i kodblocket behöver du inte sätta ihop hängslen runt det. Du kan ändra det fullständiga om uttalandet i funktionen med följande rad:
om (timmar> 100) netto. pris <- netto. pris * 0. 9
Det vanliga sättet att få hjälp med en funktion som heter, till exempel roligt. namn (? roligt namn) fungerar inte för om. För att komma åt den inbyggda hjälpen för om, måste du citera funktionsnamnet. Du kan använda enkla citat, dubbla citat eller backticks. Vart och ett av följande uttalanden tar dig till Hjälp-sidan för om:
? 'om om"? 'Om'