自定义函数

你可以输出一段代码,创建一个你自己定义的函数

蛋是如果你两个自定义函数的名字重复的话,后面的会把前面的替换掉

举个栗子:

hanshu1 <- function(x)  sqrt(var)

hanshu1 <- function(x ) sqrt(abs)  #如果你的函数只有一个函数 就不用加大括号 这两个函数名字重复了 后面的会把前面的替换掉

1、你可以设置参数也可以不设置参数,先看不设置参数的。

    welcome <- function() print ("welcome to use R")

2、可以设置一个参数

    welcome1 <-function(name) print(paste("welcome",name,"to use R"))

    #注意细节  name的两边是  有逗号的

    你现在可以输入welcome1("tao fen nan hai"),回有返回值。        

    #还要注意细节 括号里面有双引号的

3、默认参数

    welcome2 <- function(name="lao wang") print (paste("welcome",name,"to you home"))

    #如果你不输入参数,它就默认为你之前设置的那个老王,就是欢迎老王去你家

4、多个参数

yigehanshu <- function(n,mu=10,sigma=5){       #这是一个算t检验的自定义函数

x <-rnorm(n,mu,sigma)             #我也不会t检验,不要问我为什么

(mean(x)-mu)/(sd(x)/n)             #用法跟上面的默认参数的用法差不多

}                         #yigehanshu(6,6,6) n就是6 mu也是6 另一个也是6

不写的话就是默认老王去你家         #反正就是666  就是很6

举个栗子

plot.f <- function(f,a,b,...){         #你可以试试输入plot.f(sin,0,2*pi)

x<-seq(a,b,length=100)        #或者plot.f(tan,0,2*pi)还是很有意思的      

  plot(x,f(x),type="l",...)

}

  

举个栗子,很简单的一个函数,蛋是我看不懂,我擦,忍不了,解决这三个函数:switch format cat,请看下文分解。

mydata <- function(type) {

switch(type,

long = format(sys.time(),"%A %B %d %Y"),

short = format(sts.time(),"%m-%d-%y"),

cat(type,"is not recognized type\n")

)

}

再举个栗子

sum <- function(num) {

x <- 0

for(i in 1:num) {

x <- x + i

}

return(x)

}

也很简单不解释了哈

R语言入门视频笔记--5--自定义函数的更多相关文章

  1. R语言入门视频笔记--6--R函数之cat、format、switch函数

    一.cat 猫  怎么就变成一个输出函数了呢? cat  一个输出函数,功能和print有相同之处 我们一起比较看看 1.cat(“hellow world”)或cat('hellow world') ...

  2. R语言入门视频笔记--9--随机与数据描述分析

    古典概型的样本总量是一定的,且每种可能的可能性是相同的, 1.中位数:median(x) 2.百分位数:quantile(x)或者quantile(x,probe=seq(0,1,0.2)) #后面这 ...

  3. R语言入门视频笔记--10--数据挖掘

    这里来挖掘超市购物车数据. 名词: 1.挖掘数据集:购物篮数据 2.挖掘目标:关联规则 3.关联规则:牛奶=>鸡蛋[支持度=2%,置信度=60%] 4.指出度:分析中的全部事务的2%同时购买了牛 ...

  4. R语言入门视频笔记--4--R的数据输入

    输入 R的数据输入可以大体三种: 1.键盘输出 2.从文本文件导入 3.从Excel中导入数据 一.从键盘输入 首先创建一个数据框,玩玩嘛,瞎建一个 mydata <- data.frame(a ...

  5. R语言入门视频笔记--3--列表list

    list <- (stud.id = 1234,stud.name="Tom",stud,marks=c(18,3,14,25,19)) #生成一个列表,里面有学生id,学生 ...

  6. R语言入门视频笔记--2--一些简单的命令

    一.对象 1.列举当前内存中的对象 ls() 2.删除不需要的对象 rm(某对象名称) 3.查看向量长度 length(某向量名称) 4.查看向量类型 mode(某向量名称) 二.函数 1.seq函数 ...

  7. R语言入门视频笔记--1

    一.数据框简要 可输入来访问mtcars这个系统自带的数据框中的mpg列 mtcars$mpg 或者输入 mtcars[c("mpg","cyl")] 来访问两 ...

  8. R语言入门视频笔记--8--数据框

    一.数据框 使用data.frame函数生成数据框 x <- c(20122014101:20122014128) y <- rnorm(28,85,18) #生成28个平均数为85,方差 ...

  9. R语言入门视频笔记--3-1--矩阵与数组

    生成一个新矩阵,多用一些参数吧这次: x <- c(12,13,14,15) rname <- c("R1","R2") nname <- c ...

随机推荐

  1. IOS修改系统音量

    #import <IOKit/IOKitLib.h> #import <IOKit/hidsystem/IOHIDLib.h> #import <IOKit/hidsys ...

  2. 插入函数概念 接收一个callback,然后外面函数,接一个对象,和一个next,外面都执行完了,继续执行下一个函数,相当于一个链状体,插入了一个函数的概念 | log4js 输出 等于 console.info

    插入函数概念 接收一个callback,然后外面函数,接一个对象,和一个next,外面都执行完了,继续执行下一个函数,相当于一个链状体,插入了一个函数的概念 app.use(function (ctx ...

  3. IjkPlayer播放器秒开优化以及常用Option设置

    https://blog.csdn.net/shareus/article/details/78585260 ijkplayer点播和直播视频 问题 解决及优化  https://blog.csdn. ...

  4. XML解析(一) DOM解析

    XML解析技术主要有三种: (1)DOM(Document Object Model)文档对象模型:是 W3C 组织推荐的解析XML 的一种方式,即官方的XML解析技术. (2)SAX(Simple ...

  5. [LUOGU] P1111 修复公路

    题目背景 A地区在地震过后,连接所有村庄的公路都造成了损坏而无法通车.政府派人修复这些公路. 题目描述 给出A地区的村庄数N,和公路数M,公路是双向的.并告诉你每条公路的连着哪两个村庄,并告诉你什么时 ...

  6. 【curl】【php】curl报错,错误代码77,CURLE_SSL_CACERT_BADFILE (77)解决方法

    CURLE_SSL_CACERT_BADFILE (77) - 读取 SSL CA 证书时遇到问题(可能是路径错误或访问权限问题) 在微信接口相关开发时容易出现此问题 这一般是因为服务更新了相关的软件 ...

  7. 【xdebug】 windows xdebug 配置

    [xdebug] zend_extension = C:\phpStudy\php53n\ext\php_xdebug-2.6.1-7.0-vc14-nts-x86_64.dllxdebug.idek ...

  8. python--动态传参,作用域,函数嵌套

    一 . 动态传参(重点)  * ,  ** * 与 ** * 在形参位置. * 表示不定参数, 接收的是位置参数 接收到的位置参数的动态传参: 都是元组 def eat(*food): # 在形参这里 ...

  9. git克隆/更新/提交代码步骤及示意图

      1. git clone ssh://flycm.intel.com/scm/at/atSrc 或者git clone ssh://flycm.intel.com/scm/at/atJar 或者g ...

  10. JS(异步与单线程)

    JS(异步与单线程) 题目1.同步和异步的区别是什么,试举例(例子见知识点) 区别: 1.同步会阻塞代码执行,而异步不会 2.alert 是同步,setTimeout 是异步 题目2.关于 setTi ...