
תרגילים בנושא פונקציות
תרגיל 1: צרי פונקציה בשם num_to_txt שמקבלת ספרה מ-0 עד 9 (numeric) ומחזירה אותה בצורה טקסטואלית (character). לדוגמא:
num_to_txt(4) # returns "four"
<- function(digit) {
num_to_txt if (class(digit) == "numeric" & nchar(digit) == 1) {
if (digit == 0) {return ('zero')}
else if (digit == 1) {return ('one')}
else if (digit == 2) {return ('two')}
else if (digit == 3) {return ('three')}
else if (digit == 4) {return ('four')}
else if (digit == 5) {return ('five')}
else if (digit == 6) {return ('six')}
else if (digit == 7) {return ('seven')}
else if (digit == 8) {return ('eight')}
else if (digit == 9) {return ('nine')}
}else {return('not a valid digit. please try again')}
}num_to_txt(3) # "three"
num_to_txt(7) # "seven"
num_to_txt(13) # "Not a valid digit. please try again"
num_to_txt(9) # "nine"
# another way, with dyplr:
library('tidyverse')
<- function(digit) {
num_to_txt if (class(digit) == "numeric" & nchar(digit) == 1) {
<- data.frame(digit) %>%
edited mutate(converted = case_when(
== 0 ~ 'zero',
. == 1 ~ 'one',
. == 2 ~ 'two',
. == 3 ~ 'three',
. == 4 ~ 'four',
. == 5 ~ 'five',
. == 6 ~ 'six',
. == 7 ~ 'seven',
. == 8 ~ 'eight',
. == 9 ~ 'nine',))
. return(edited$converted)
}else {return('not a valid digit. please try again')}
}num_to_txt(5) # "five"
num_to_txt(8) # "eight"
תרגיל 2: צרי פונקציה בשם is_even שמקבלת מספר (numeric) ומחזירה האם הוא זוגי (TRUE או FALSE). לדוגמא:
is_even(456) # returns TRUE
<- function(num) {
is_even if (class(num) == "numeric") {
if (num %% 2 == 0) {return (TRUE)}
else {return (FALSE)}
}else {return('not a valid number please try again')}
}is_even(2) # TRUE
is_even(67253) # FALSE
is_even(3586976) # TRUE
is_even('34') # 'Not a valid number please try again'