r语言 not enough x observations_【小白福利】从零开始学习R语言(七)——函数

本文是【小白福利】R语言系列教程的第七篇,重点讲解R语言自定义函数的基础知识。介绍了函数的结构,包括func_name、args和func_body,并提供了两个实例:统计函数和九九乘法表显示函数,帮助读者理解如何创建自己的R语言函数。
摘要由CSDN通过智能技术生成

55bbd1bcfffdb96a42aba2d9d26e2c94.png

【小白福利】从零开始学习R语言(一)——数据结构之“向量(Vector):

Nick WU:【小白福利】从零开始学习R语言(一)——数据结构之“向量”​zhuanlan.zhihu.com
a9ff466333410507d8af28ee524f567b.png

【小白福利】从零开始学习R语言(二)——数据结构之“因素(Factor)”:

Nick WU:【小白福利】从零开始学习R语言(二)——数据结构之“因素(Factor)”​zhuanlan.zhihu.com
4c0c1622ccd462fb9f34be5f512ba9af.png

【小白福利】从零开始学习R语言(三)——数据结构之“矩阵(Matrix)”:

Nick WU:【小白福利】从零开始学习R语言(三)——数据结构之“矩阵(Matrix)”​zhuanlan.zhihu.com
4c0c1622ccd462fb9f34be5f512ba9af.png

【小白福利】从零开始学习R语言(四)——数据结构之“数组(Array)”:

Nick WU:【小白福利】从零开始学习R语言(四)——数据结构之“数组(Array)”​zhuanlan.zhihu.com
4c0c1622ccd462fb9f34be5f512ba9af.png

【小白福利】从零开始学习R语言(五)——数据结构之“列表(List)”:

Nick WU:【小白福利】从零开始学习R语言(五)——数据结构之“列表(List)”​zhuanlan.zhihu.com
4c0c1622ccd462fb9f34be5f512ba9af.png

【小白福利】从零开始学习R语言(六)——数据结构之“数据框(Data Frames)”:

Nick WU:【小白福利】从零开始学习R语言(六)——数据结构之“数据框(Data Frames)”​zhuanlan.zhihu.com
4c0c1622ccd462fb9f34be5f512ba9af.png

【小白福利】从零开始学习R语言(七)——函数:

Nick WU:【小白福利】从零开始学习R语言(七)——函数​zhuanlan.zhihu.com
ee2969190f6cdc7d05568cd56f6c4732.png

【小白福利】从零开始学习R语言(八)——R语言绘图:

Nick WU:【小白福利】从零开始学习R语言(八)——R语言绘图​zhuanlan.zhihu.com
ee2969190f6cdc7d05568cd56f6c4732.png

函数是各种编程语言都很常见的功能,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')  #输出完一行后换行
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值