1.自定義函數(shù)
何為函數(shù)淮摔,函數(shù)就是你的輸入通過這個函數(shù)可以得到你想要的輸出,比如你自己封裝一個A加B再乘以C的函數(shù)始赎,那么你直接輸入A,B,C的值就可以通過這個函數(shù)計算出結果和橙,而不用算完A+B再用其結果乘以C這么麻煩。
由于R是開源的造垛,在R中我們直接打出函數(shù)名不加括號魔招,運行結果就會顯示該函數(shù)的源代碼。 有些函數(shù)被封裝起來就不會顯示源代碼五辽。
1.1 函數(shù)的定義
一個成熟的函數(shù)通常包括函數(shù)名稱办斑、函數(shù)聲明、函數(shù)參數(shù)杆逗、函數(shù)體
-
函數(shù)名稱
1乡翅、函數(shù)命令與功能相關
2、可以是字母和數(shù)字的組合罪郊,但必須是字母開頭 -
函數(shù)聲明
1蠕蚜、用function聲明函數(shù),函數(shù)的參數(shù)稱為選項參數(shù)
2悔橄、聲明函數(shù)格式靶累,如圖
圖2 聲明函數(shù)格式
1.2 制作一個函數(shù)
例子:制作一個函數(shù)計算偏度和峰度
偏度(skewness):是統(tǒng)計數(shù)據(jù)分布偏斜方向和程度的度量,是統(tǒng)計數(shù)據(jù)分布非對稱程度的數(shù)字特征癣疟。
峰度(peakedness ; kurtosis):又稱峰態(tài)系數(shù)尺铣。表征概率密度分布曲線在平均值處峰值高低的特征數(shù)。
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))#返回值争舞,有四項
}
定義好一個函數(shù)后我們就可以運用這個函數(shù),計算出x的偏度和峰度
x<-1:100
mystats(x)
1.3 循環(huán)控制語句
R語言中包含和其他語言一樣的循環(huán)控制結構凛忿,if 條件判斷、for循環(huán)竞川、while循環(huán)店溢、switch語句等叁熔。循環(huán)包括三部分
1、條件判斷床牧,是真或者假
2荣回、用于循環(huán)執(zhí)行的結構
3、表達式
用for循環(huán)進行執(zhí)行循環(huán)
for(i in 1:10){print("hello,world")}#for循環(huán)輸出十次hello,world
用while循環(huán)進行執(zhí)行循環(huán)
i=1;
while(i<=10)
{
print("hello,world");
i=i+1;
}#while循環(huán)輸出十次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"))
#第一個參數(shù)表示判斷條件,第二個參數(shù)是輸出符合條件的結果著蛙,第三個條件是輸出不符合判斷的結果