R you functional?(2)
我們已為你提供一個可行的 interpret() 函式實作。在這個練習中,你將撰寫另一個函式,使用 interpret() 來解讀向量中你每日個人檔案瀏覽數的「所有」資料。此外,若有需要,你的函式還會回傳熱門日的總瀏覽次數。如果要遍歷整個向量,for 迴圈非常合適。是否回傳熱門日總瀏覽次數,可以透過帶有預設值的函式引數來實作。
本練習屬於課程
R 中級
練習說明
完成 interpret_all() 函式的樣板:
- 將
return_sum設為可選引數,且預設為TRUE。 - 在
for迴圈內遍歷所有views:每次迭代都把interpret(v)的結果加到count。記得interpret(v)會在熱門日回傳v,否則回傳0。同時,interpret(v)也會印出一些訊息。 - 完成
if結構: - 若
return_sum為TRUE,回傳count。 - 否則回傳
NULL。
用這個新定義的函式分別對 linkedin 與 facebook 呼叫一次。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# The linkedin and facebook vectors have already been created for you
linkedin <- c(16, 9, 13, 5, 2, 17, 14)
facebook <- c(17, 7, 5, 16, 8, 13, 14)
# The interpret() can be used inside interpret_all()
interpret <- function(num_views) {
if (num_views > 15) {
print("You're popular!")
return(num_views)
} else {
print("Try to be more visible!")
return(0)
}
}
# Define the interpret_all() function
# views: vector with data to interpret
# return_sum: return total number of views on popular days?
interpret_all <- function(views, return_sum) {
count <- 0
for (v in views) {
}
if (return_sum) {
} else {
}
}
# Call the interpret_all() function on both linkedin and facebook