Lasst uns in dieser Übung euer Wissen über die Funktionen in R überprüfen! Dafür gibt es einige Aufgaben, die sich mit der Erstellung von Funktionen befassen. Diese Funktionen sollen bestimmte Parameter aufnehmen und bestimmte Ergebnisse erzeugen. Folgt dazu einfach den Anweisungen und orientiert euch an den zwei einleitenden Beispielen.
Beispiel 1: Erstelle eine Funktion, die einen Namen als Parameter aufnimmt und als print-Ausgabe "Hallo Name" erzeugt
hallo_du <- function(name){
print(paste('Hallo',name))
}
hallo_du('Sam')
[1] "Hallo Sam"
** Beispiel 2: Erstelle eine Funktion, die einen Namen als Parameter aufnimmt und als return-Ausgabe "Hallo Name" erzeugt**
hallo_du <- function(name){
return(paste('Hallo',name))
}
print(hallo_du2('Sam'))
[1] "Hallo Sam"
** Erstelle eine Funktion, die das Produkt von zwei ganzzahligen Werten zurückgibt (-> return).**
prod(3,4)
Erstelle eine Funktion, die zwei Parameter aufnimmt. Eine Interger (dt. Ganzzahl) und einen Vektor von ganzzahligen Werten. Sie soll TRUE zurückgeben, sofern die Integer im Vektor beinhaltet ist. Andenfalls soll das Ergebnis FLASE lauten. Achte dabei gut auf die Position der FALSE Rückgabe im Code.
num_check(2,c(1,2,3))
num_check(2,c(1,4,5))
Erstelle eine Funktion, die zwei Parameter aufnimmt. Eine Interger (dt. Ganzzahl) und einen Vektor von ganzzahligen Werten. Die Funktion soll die Anzahl der Erscheinungen der Integer im Vektor ausgeben.
num_anzahl(2,c(1,1,2,2,3,3))
num_anzahl(1,c(1,1,2,2,3,1,4,5,5,2,2,1,3))
Wir wollen nun Blöcke aus Aluminium verschiffen. Dazu erstellen wir eine Funktion, die eine Interger akzeptiert, die die angeforderte Menge (in kg) repräsentiert. Um so eine Bestellung zu erfüllen können wir aus 5kg und 1kg Blöcken auswählen. DIe Funktion soll nun die kleinst mögliche Menge an Blöcken ausgeben.
Zum Beispiel benötigen wir für eine Bestellung von 6kg mindestens zwei Blöcke: 1 x 5kg und 1 x 1kg. Eine Ladung von 17kg benötigt mindestens 5 Blöcke (3 x 5kg und 2 x 1kg).
bar_anzahl(6)
bar_anzahl(17)
** Erstelle eine Funktion, die 3 Integers als Eingabe akzeptiert und deren Summe zurückgibt. Allerdings zählen alle die Werte nicht zur Summe dazu, die gerade durch 3 teilbar sind (3,6,9,...). Falls alle Werte gerade durch 3 teilbar sind soll 0 zurückgegeben werden. Hinweis: append().**
summe(7,2,3)
summe(3,6,9)
summe(9,11,12)
Erstelle eine Funktion, die TRUE ergibt, falls die eingegebene Interger eine Primzahl ist. Andernfalls soll das Ergebnis FALSE lauten.
Diese Aufgabe lässt sich auf viele verschiedene Arten lösen. Auf die Randlösungen wie z.B. negative Zahlen müsst ihr nicht unbedingt achten, könnt aber sehr gerne Abfragen für diese einbauen!
prime_check(2)
prime_check(5)
prime_check(4)
prime_check(237)
prime_check(131)