R function基本语法
MyFunction <- function(<argument>){
## Task
}
【例1】定义一个function用于将华氏温度转换为摄氏温度。
F_to_C <- function(temp_F){
temp_C <- (temp_F - 32) * 5 / 9
return(temp_C)
}
执行该function(当输入的华氏温度为32时,摄氏温度为0):
F_to_C(32)
[1] 0
【例2】定义一个function用于将华氏温度转换为开尔文。
F_to_K <- function(temp_F){
temp_C <- (temp_F - 32) * 5 / 9
temp_K <- temp_C + 273.15
return(temp_K)
}
【例3】定义一个function,用于重复计算导入data frame每一行的平均值。
首先定义function:
analyze <- function(df){
df_average <- apply(df, 1, mean)
return(df_average)
}
导入示例数据:
day1 <- c(4,5,6,3,4)
day2 <- c(4,0,11,3,5)
day3 <- c(1,9,8,8,4)
d1 <- data.frame(day1, day2, day3)
analyze(d1)
[1] 3.000000 4.666667 8.333333 4.666667 4.333333
默认值设定
【例1】定义已有默认值的function,观察不同的input对output的影响。
display <- function(a = 1, b = 2, c = 3){
result <- c(a, b ,c)
names(result) <- c("a", "b", "c")
return(result)
}
当没有输入时:
display()
a b c
1 2 3
当输入一个数值:
display(10)
a b c
10 2 3
当输入两个数值:
display(10, 12)
a b c
10 12 3
那如果只要重新定义b或c呢?
display(b = 5)
a b c
1 5 3