官术网_书友最值得收藏!

1.4.5 控制語(yǔ)句與函數(shù)編寫

我們常用的控制語(yǔ)句包括if…else、ifelse條件語(yǔ)句,以及for和while循環(huán)語(yǔ)句。其中我們最常見的就是if…else,主要用于檢查判定。其條件最基本的檢查包括等于(=)、小于(<)、小于等于(<=)、大于(>)、大于等于(>=)和不等于(! =)。if…else語(yǔ)句對(duì)數(shù)據(jù)的操作運(yùn)算命令都需要放在{}里面。需要注意的是:else跟在其左邊的大括號(hào)“}”必須在同一行,否則程序無(wú)法識(shí)別,會(huì)導(dǎo)致代碼運(yùn)行錯(cuò)誤。另外,R語(yǔ)言還有一個(gè)ifelse()語(yǔ)句,可以向量化if語(yǔ)句,從而加速代碼的運(yùn)行,如表1-4-5所示的if…else條件語(yǔ)句可以使用ifelse()重寫為:ifelse(i > 3, print('Yes'), print('No'))。該語(yǔ)句可以結(jié)合transform()函數(shù)等對(duì)數(shù)據(jù)框的每個(gè)元素進(jìn)行判別運(yùn)算,從而生成新的列。

表1-4-5 控制語(yǔ)句

我們最常用的循環(huán)是for循環(huán),for循環(huán)的向量不一定是連續(xù)型的,也可以是其他類型的向量,如表1-4-6所示的for循環(huán)示例。其中,1:4的輸出起點(diǎn)為1、終點(diǎn)為4、步長(zhǎng)為1的等差數(shù)列向量(1,2,3,4),效果類似于seq(1,4,1)。另外,while循環(huán)雖然沒有for循環(huán)用得普遍,但是更加易于操作。但對(duì)新手來(lái)說(shuō),容易由于設(shè)定的循環(huán)條件有誤而導(dǎo)致循環(huán)不停迭代,從而陷入“死循環(huán)”。

表1-4-6 自定義函數(shù)

我們?cè)趯?shí)現(xiàn)數(shù)據(jù)可視化時(shí),更多是使用現(xiàn)有包的函數(shù),比如等差數(shù)列生成函數(shù)seq()、向量排序函數(shù)sort()、插值函數(shù)spline()等,而很少需要自定義函數(shù)(表1-4-6為各種自定義函數(shù)的語(yǔ)法格式)。我們更加需要了解的是現(xiàn)有函數(shù)的輸入?yún)?shù)與數(shù)據(jù)的結(jié)構(gòu)、輸出參數(shù)的數(shù)據(jù)內(nèi)容等,比如plot3D包的persp3D()函數(shù)和lattice包的wireframe()函數(shù)都可以繪制相同的三維曲面圖,但是persp3D()函數(shù)要求輸入的數(shù)據(jù)是向量與矩陣形式,而wireframe()函數(shù)要求輸入的數(shù)據(jù)是數(shù)據(jù)框。

主站蜘蛛池模板: 德令哈市| 哈密市| 尚义县| 新疆| 祁阳县| 施甸县| 抚州市| 昭苏县| 玉环县| 东安县| 河池市| 彭阳县| 客服| 林西县| 柘城县| 林芝县| 日土县| 伊宁市| 西乡县| 仲巴县| 武安市| 杂多县| 威宁| 渭源县| 韶关市| 仙游县| 彩票| 三穗县| 罗定市| 南平市| 托克逊县| 阳西县| 中阳县| 临颍县| 彩票| 桐梓县| 航空| 增城市| 香港 | 南郑县| 海南省|