R语言学习 | 如何写R function

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

参考资料

  1. https://swcarpentry.github.io/r-novice-inflammation/02-func-R/
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容