R 语言是为数学研究工作者设计的一种数学编程语言,主要用于统计分析、绘图、数据挖掘。 机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。
自定义函数定制自己的函数
函数介绍——自定义函数
编写函数就是为了减少重复代码的书写,从而让脚本更加简洁高效,增加可读性
在R中,如果直接写函数不加括号,就会显示函数的源代码
一个完整的R函数需要包括函数名称、函数声明、函数参数、函数体
函数名称:函数的命名最好和函数的功能相关,可以使字母和数字的组合,但必须是字母开头
函数声明:利用function函数来声明,用来告诉R这个东西是函数
下面我们来编写一个简单的R函数,这个函数的功能是计算偏度和峰度值:
偏度(skewness),是统计数据分布偏斜方向和程度的度量,是统计数据分布非对称程度的数字特征
峰度(peakness; kurtosis),又称峰态系数,表征概率密度分布曲线在平均值处峰值高低的特征数
第一个选项参数x就是要计算的数据,是一个数值向量,第二个选项是na.omit,用于删除缺失值,默认取值为False,然后是大括号,用于写函数的主体
然后是逻辑判断:
如果有缺失值,那么x只取不包含缺失值的x的值,!是取反的意思,is.na()是取数据集中的缺失值。
然后我们定义m为数值向量x的平均值,n为数值向量x的长度,s为数值向量x的标准差
然后写下计算skew(偏度)的公式:
skew<-sum((x-m^3/s^3))/n
计算峰度的公式:
kurt<-sum((x-m^3/s^4))/n-3
最后使用一个return函数返回函数的值
return(c(n=m,mean=n,stdev=s,skew=skew,kurtosis=kurt))}
这里我们要输出的是向量的个数n,平均值m,标准差s,偏度值和峰度值
然后可以使用一下这个函数:
下面来介绍一下R中的循环控制函数:
函数内部通过循环实现向量化操作,循环的三部分:条件判断,是真是假,用于循环执行的结构,表达式
首先看一下for循环:
for(iin1:10){print("hello,world")}
然后是while循环:
i=1;while(i<=10){print("hello,world");i=i+1;}
分号;表示一个语句完结
i=1;while(i<=10){print("hello,world");i=i+2;}
i=i+2时语句会少一半
if else的结构
score=70;if (score>60){print("passed")} else {print("failed")}
还可以简写ifelse
ifelse(score>60,print("passed"),print("failed")
这节课可以参考用来写d-dematel 函数