R语言自定义函数2021.3.17

2021-03-17  本文已影响0人  R语言_茶味先生

1.自定义函数

何为函数,函数就是你的输入通过这个函数可以得到你想要的输出,比如你自己封装一个A加B再乘以C的函数,那么你直接输入A,B,C的值就可以通过这个函数计算出结果,而不用算完A+B再用其结果乘以C这么麻烦。


图1 自定义函数

由于R是开源的,在R中我们直接打出函数名不加括号,运行结果就会显示该函数的源代码。 有些函数被封装起来就不会显示源代码。

1.1 函数的定义

一个成熟的函数通常包括函数名称、函数声明、函数参数、函数体

1.2 制作一个函数

例子:制作一个函数计算偏度和峰度
偏度(skewness):是统计数据分布偏斜方向和程度的度量,是统计数据分布非对称程度的数字特征。
峰度(peakedness ; kurtosis):又称峰态系数。表征概率密度分布曲线在平均值处峰值高低的特征数。

 mystats<-function(x,na.omit=FALSE) 
  {
  if (na.omit)
  x<-x[!is.na(x)]
  m<-mean(x)
  n<-length(x)
  s<-sd(x)
  skew<-sum((x-m^3/s^3))/n#计算偏度
  kurt<-sum((x-m^4/s^4))/n-3#计算峰度
  return(c(n=m,mean=m,stdev=s,skew=skew,kurtosis=kurt))#返回值,有四项
  }

定义好一个函数后我们就可以运用这个函数,计算出x的偏度和峰度

x<-1:100
mystats(x)

1.3 循环控制语句

R语言中包含和其他语言一样的循环控制结构,if 条件判断、for循环、while循环、switch语句等。循环包括三部分
1、条件判断,是真或者假
2、用于循环执行的结构
3、表达式
用for循环进行执行循环

for(i in 1:10){print("hello,world")}#for循环输出十次hello,world

用while循环进行执行循环

i=1;
while(i<=10)
  {
  print("hello,world");
  i=i+1;
  }#while循环输出十次hello,world

用if来判断条件。如果有两种结果那么就是用if.....else结构

score<-70;
if(score>60)
{
print("Passed")
}
 else
{
print("Failed")
}

但是也有if......else的简略写法。

score<-70;
ifelse(score>60,print("passed"),print("failed"))
#第一个参数表示判断条件,第二个参数是输出符合条件的结果,第三个条件是输出不符合判断的结果
上一篇 下一篇

猜你喜欢

热点阅读