从零开始学习R语言(七)——函数
也同步更新于我的个人博客:
函数是各种编程语言都很常见的功能,R语言有很多的内置函数,但通过自定义函数,我们可以创建能实现自己想要功能的函数。
R语言自定义函数的结构
func_name <- function (args) { func_body return (value) }
其中,func_name是自定义函数的名称,args为函数的参数(可选),func_body部分为函数的主体部分,函数最后一般以return (value)
结束,当执行该函数时返回value(可选)。
函数示例
示例1:自定义包含各种功能的统计函数
stats <- function(x,more=FALSE) { #参数more的默认值是FALSE,若不赋值则为FALSE stats_ans <- list() #创建一个空列表,作为最后输出的内容 x_clean <- x[!is.na(x)] #首先对数据进行清洗,去除缺省值NA,x_clean为清洗后的数据(若数据中含有NA,则mean()、std()等内置函数无法顺利进行) stats_ans$n <- length(x) #计算x中元素的个数 stats_ans$NA_num <- stats_ans$n-length(x_clean) #计算被清洗掉的元素个数(即NA的个数) stats_ans$mean <- mean(x_clean) #计算平均数 stats_ans$std <- sd(x_clean) #计算标准差 stats_ans$med <- median(x_clean) #计算中位数 if (more) { #如果参数more为True,则执行更多计算 stats$skew <- sum(((x_clean-stats_ans$mean)/stats$std)^3)/length(x_clean) stats$kurt <- sum(((x_clean-stats_ans$mean)/stats$std)^4)/length(x_clean) - 3 } return (stats_ans) #返回列表stats_ans }
示例2:自定义九九乘法表显示函数
nine_multi <- function(i=0){ #该函数用来显示九九乘法表前i行的内容 if (i != as.integer(i) | (i<1) | (i>9)){ stop("请输入一个1-9的整数") #如果输入的不是1-9之间的整数,则退出函数并报错 } for (j in 1:i){ #第j行从1~i for (k in 1:j){ #第j行中的第k个元素从1~j cat(k, '*', j, '=', k*j,' ') #输出每一个元素 } cat('\n') #输出完一行后换行 } }