R语言自定义函数2021.3.17
2021-03-17 本文已影响0人
R语言_茶味先生
1.自定义函数
何为函数,函数就是你的输入通过这个函数可以得到你想要的输出,比如你自己封装一个A加B再乘以C的函数,那么你直接输入A,B,C的值就可以通过这个函数计算出结果,而不用算完A+B再用其结果乘以C这么麻烦。
![](https://img.haomeiwen.com/i25656475/0b5f6b26ee78f378.png)
由于R是开源的,在R中我们直接打出函数名不加括号,运行结果就会显示该函数的源代码。 有些函数被封装起来就不会显示源代码。
1.1 函数的定义
一个成熟的函数通常包括函数名称、函数声明、函数参数、函数体
-
函数名称
1、函数命令与功能相关
2、可以是字母和数字的组合,但必须是字母开头 -
函数声明
1、用function声明函数,函数的参数称为选项参数
2、声明函数格式,如图
图2 声明函数格式
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"))
#第一个参数表示判断条件,第二个参数是输出符合条件的结果,第三个条件是输出不符合判断的结果