《R語言程序設(shè)計》 課件全套 周圍 第0-9章 R語言程序設(shè)計教學(xué)概要-應(yīng)用拓展_第1頁
《R語言程序設(shè)計》 課件全套 周圍 第0-9章 R語言程序設(shè)計教學(xué)概要-應(yīng)用拓展_第2頁
《R語言程序設(shè)計》 課件全套 周圍 第0-9章 R語言程序設(shè)計教學(xué)概要-應(yīng)用拓展_第3頁
《R語言程序設(shè)計》 課件全套 周圍 第0-9章 R語言程序設(shè)計教學(xué)概要-應(yīng)用拓展_第4頁
《R語言程序設(shè)計》 課件全套 周圍 第0-9章 R語言程序設(shè)計教學(xué)概要-應(yīng)用拓展_第5頁
已閱讀5頁,還剩671頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

R語言程序設(shè)計

課程概要R語言是一門用于統(tǒng)計分析、數(shù)據(jù)挖掘和數(shù)據(jù)可視化的語言,在大數(shù)據(jù)時代其應(yīng)用領(lǐng)域非常廣泛。本課程從數(shù)據(jù)挖掘角度講解R語言,涉及R語言特性、數(shù)據(jù)對象和管理、數(shù)據(jù)可視化、基本統(tǒng)計分析概念與應(yīng)用、數(shù)據(jù)挖掘和機器學(xué)習(xí)。面向全校本科生選修課,基礎(chǔ)能力/信息能力模塊先修課“大學(xué)計算機基礎(chǔ)”1課程目標(biāo)課程目標(biāo)1:專業(yè)知識方面。掌握R語言與數(shù)據(jù)挖掘的基礎(chǔ)知識,學(xué)會R語言的常用功能,理解與掌握使用R語言進行數(shù)據(jù)挖掘的基本原理。課程目標(biāo)2:專業(yè)能力方面。掌握R語言數(shù)據(jù)挖掘中的建模與應(yīng)用,了解和熟悉常用數(shù)據(jù)挖掘算法例如分類與預(yù)測、聚類分析、關(guān)聯(lián)規(guī)則、智能推薦、時序模式、神經(jīng)網(wǎng)絡(luò)的基本原理和應(yīng)用。課程目標(biāo)3:綜合能力方面。在具體案例中掌握實施R語言數(shù)據(jù)挖掘的流程,初步具備綜合運用R語言進行數(shù)據(jù)挖掘的基本能力。課程目標(biāo)4:思想政治素質(zhì)方面。強化學(xué)生在大數(shù)據(jù)挖掘?qū)嵺`中的道德品質(zhì)與倫理素養(yǎng),要求學(xué)生在其中培養(yǎng)愛國敬業(yè)、誠實守信等基本素質(zhì)。2教學(xué)內(nèi)容與時間3模塊周數(shù)內(nèi)容課堂學(xué)時實驗學(xué)時一

基礎(chǔ)1R語言概述2(2)2數(shù)據(jù)對象223數(shù)據(jù)管理224數(shù)據(jù)可視化225模塊一復(fù)習(xí)2(2)二進階6數(shù)據(jù)探索227數(shù)據(jù)分析228數(shù)學(xué)建模-12(2)9數(shù)學(xué)建模-22210數(shù)學(xué)建模-32(2)11模塊二復(fù)習(xí)2(2)三

拓展12R語言高級特性2(2)13應(yīng)用拓展-12214應(yīng)用拓展-22215課程復(fù)習(xí)2(2)16

考試共計3018+(12)()為課外學(xué)時基礎(chǔ)知識4序號主題內(nèi)容掌握1R語言概述R起源、下載使用、R程序特點、包、數(shù)據(jù)集***2數(shù)據(jù)對象數(shù)據(jù)類型,向量(等差數(shù)列),矩陣,數(shù)組,數(shù)據(jù)框,列表,因子***3數(shù)據(jù)管理控制結(jié)構(gòu),編寫函數(shù),函數(shù)族,數(shù)據(jù)輸入輸出***4數(shù)據(jù)可視化繪圖基礎(chǔ)plot(),繪圖進階ggplot()***基礎(chǔ)知識5序號主題內(nèi)容掌握5數(shù)據(jù)探索數(shù)據(jù)描述、清洗、集成、規(guī)范、重構(gòu)**6數(shù)據(jù)分析隨機數(shù)模擬、假設(shè)檢驗、方差分析、線性回歸、廣義線性模型**7數(shù)據(jù)挖掘數(shù)據(jù)挖掘、決策樹、分類、聚類、Rattle**8高級特性面向?qū)ο?、性能提?9應(yīng)用拓展模型拓展(關(guān)聯(lián)規(guī)則、時間序列分析)、工具*配套教材6模塊編號目錄基礎(chǔ)篇1R語言概述2數(shù)據(jù)對象3數(shù)據(jù)管理4數(shù)據(jù)可視化進階篇5數(shù)據(jù)探索6數(shù)據(jù)分析7數(shù)據(jù)挖掘拓展篇8高級特性9應(yīng)用拓展配套資源7學(xué)堂在線:R語言程序設(shè)計(北京交通大學(xué)周圍)參考教材及資料8大數(shù)據(jù)技術(shù)叢書R語言與數(shù)據(jù)挖掘作者:張良均等出版社:機械工業(yè)出版出版年:2019-11-1R語言編程藝術(shù)作者:(美)NormanMatloff出版社:機械工業(yè)出版社譯者:陳堰等出版年:2013-5常用鏈接:R語言:入門教程:/rIDE工具:R包下載:論壇:/t/r論壇:R共享:評定與考核(參考)9小組研究型實驗:每組5人,完成相應(yīng)項目。線上單元測:

共9個單元測試或作業(yè),在線完成,自動出成績。模塊一和模塊二:

共2次線上/線下測試或作業(yè),限時完成,有成績。期末考試:線下筆試,限時,監(jiān)考,閉卷。簽到考勤:按照學(xué)校請假制度。小組研究型實驗要求每小組5人,共同完成各自研究型實驗(大作業(yè))。小組名單第1位和第5位同學(xué)為正副組長,進行任務(wù)分工、討論、校對、整合、優(yōu)化等工作。實驗大作業(yè)要求:具有一定挑戰(zhàn)性和難度的研究題目。在期末考試前提交,按照論文模板要求撰寫研究實驗報告。10R語言學(xué)習(xí)的特點R語言是一門程序設(shè)計語言,主要通過命令行方式完成。和數(shù)據(jù)分析、數(shù)據(jù)挖掘的模型聯(lián)系緊密,雖然幾行語句就可以完成,但每一個知識點都需要深入研究。實用性很強,今后的科研活動能用得上。11如何學(xué)好R語言作為一門語言,多敲代碼、多實驗是必經(jīng)之路。作為一門數(shù)據(jù)分析挖掘的工具,盡可能理解算法模型背后的原理。面對日新月異的大數(shù)據(jù)應(yīng)用,關(guān)注幾個權(quán)威論壇,學(xué)習(xí)常態(tài)化。12R語言程序設(shè)計

R語言概述了解R語言R起源、下載使用、R程序特點、包、數(shù)據(jù)集第一個R語言會話開發(fā)環(huán)境配置程序編寫運行綜合實驗?zāi)夸?5了解R語言應(yīng)用于統(tǒng)計分析、數(shù)據(jù)挖掘等領(lǐng)域開源免費,編程方便為什么選擇R語言編程語言排行榜18常用分析工具Excel:辦公室應(yīng)用軟件SPSS:專業(yè)統(tǒng)計分析軟件MATLAB:商用數(shù)學(xué)軟件R:統(tǒng)計分析數(shù)據(jù)挖掘收費收費收費免費SAS:統(tǒng)計分析商用軟件收費免費Python:膠水語言S語言是由AT&T貝爾實驗室開發(fā)的一種用來進行數(shù)據(jù)探索、統(tǒng)計分析、作圖的解釋型語言。1995年,Auckland大學(xué)的RobertGentleman和RossIhaka及其他志愿人員開發(fā)了R系統(tǒng)。R是基于S語言的GNU計劃項目?,F(xiàn)在R語言由20余人的核心團隊負(fù)責(zé)開發(fā)。R的第三方包、工具、論壇很多,不斷更新中。什么是R?開源免費,第三方包發(fā)布的CRAN平臺跨平臺(開源,支持多種OS)可拓展性強(與其他語言相互調(diào)用)編程簡單,解釋性、交互性語言數(shù)據(jù)分析功能強大,專為統(tǒng)計和數(shù)據(jù)挖掘開發(fā)龐大且活躍的社區(qū)維護專業(yè)數(shù)據(jù)分析領(lǐng)域的標(biāo)準(zhǔn)工具R語言的優(yōu)點R相關(guān)網(wǎng)址:/t/rR是一種解釋性語言,和編譯性語言相比,速度略慢。R所有計算都是在內(nèi)存中進行的。R語言包的編寫者來自不同領(lǐng)域,在一定程度上較混亂,有些更新慢。R語言的缺點R可以在CRAN(ComprehensiveRArchiveNetwork)免費下載。Linux、MacOSX和Windows都有相應(yīng)編譯好的二進制版本??梢酝ㄟ^安裝包(package)來增強R的功能。R語言的獲取和安裝/mirrors.htmlR的GUIR的圖形用戶界面RStudio是專門用于R語言環(huán)境的集成開發(fā)環(huán)境(IDE),本課程推薦使用。使用RStudio開發(fā)程序R語言有眾多的繪圖工具包,如ggplot2。R語言有強大的數(shù)據(jù)挖掘和可視化工具,如rattle。數(shù)據(jù)可視化工具R是一種區(qū)分大小寫的解釋性語言??梢栽诿钐崾痉?>)后,輸入并執(zhí)行一條命令,或者一次性執(zhí)行寫在腳本文件中的一組命令。R中有多種數(shù)據(jù)類型,包括向量、矩陣、數(shù)據(jù)框以及列表。R中的很多功能是由程序內(nèi)置函數(shù)和用戶自編函數(shù)提供的,一次交互會話期間的所有數(shù)據(jù)對象都被保存在內(nèi)存中。一些基本函數(shù)是默認(rèn)直接使用,而有些函數(shù)則需加載程序包。R語言的編程特點在Rstudio中練習(xí):R的使用R的內(nèi)置幫助系統(tǒng)提供了當(dāng)前已安裝包中所有函數(shù)的細節(jié)、參考文獻以及使用示例。R的幫助函數(shù):內(nèi)置幫助系統(tǒng)函數(shù)功能help.start()打開幫助文檔help("plot")或者

?plot查看函數(shù)plot的幫助(引號可以省略)help.search("plot")或者??plot以plot為關(guān)鍵詞搜索本地幫助文檔example(“plot”)函數(shù)plot的使用示例(引號可以省略)RSiteSearch("plot")以plot為關(guān)鍵詞搜索在線文檔個郵件列表存檔apropos("plot",mode="function")列出名稱中含有plot的所有可用函數(shù)data()列出當(dāng)前已加載包中所含的所有可用示例數(shù)據(jù)集vignette()列出當(dāng)前已經(jīng)安裝包中所有可能的vignette文檔vignette(“plot”)為主題plot顯示指定的vignette文檔工作空間(workspace),儲存著所有用戶定義的對象。R會話結(jié)束時,可以保存工作空間,下次啟動R時自動載入。工作目錄(workingdirectory)

getwd():查看當(dāng)前工作目錄setwd():設(shè)定當(dāng)前的工作目錄。如果讀入不在當(dāng)前工作目錄的文件,需要寫明完整的路徑。RStudio工作空間工作空間的命令包是R函數(shù)、數(shù)據(jù)、預(yù)編譯代碼以一種定義完善的格式組成的集合。R自帶了一系列默認(rèn)包,提供了種類繁多的默認(rèn)函數(shù)和數(shù)據(jù)集。計算機上存儲包的目錄稱為庫(library)。libPaths():顯示庫所在的位置。library():顯示庫中有哪些包。什么是包第一次安裝包:install.packages("package_name","dir")

也可在RStudio中的菜單欄里從CRAN下載。一個包僅需要安裝一次。使用update.packages()可以更新已經(jīng)安裝的包。使用installed.packages()查看已安裝包的信息。包的安裝加載包:library(),require()查看包的幫助:library(help=“包名")查看當(dāng)前環(huán)境哪些包加載:find.package()移除包:detach(package:包名)包的數(shù)據(jù)加載到內(nèi)存中:attach(“數(shù)據(jù)集名”)列出所有安裝的包library()包的使用base程序包,R語言的基礎(chǔ)包,包含常用的數(shù)學(xué)計算。stats程序包,統(tǒng)計包,包含用于統(tǒng)計計算和生成隨機數(shù)的功能。datasets程序包,R語言的基礎(chǔ)包,可以直接調(diào)用數(shù)據(jù)集,如iris。查看本機上所有R包的數(shù)據(jù)集data(package=.packages(all.available=TRUE))常用包R數(shù)據(jù)挖掘相關(guān)包功能函數(shù)及加載包分類與預(yù)測

nnet()需要加載BP神經(jīng)網(wǎng)絡(luò)nnet包;randomForest()需要加載隨機森林randomForest

;

svm()需要加載e1071包;tree()需要加載CRAT決策樹tree包等;聚類分析

hclust()函數(shù)、kmeans()函數(shù)在stats包中關(guān)聯(lián)規(guī)則

apriori()需要加載arules包時間序列

arima()需要加載forecast、tseries包數(shù)據(jù)集描述airquality紐約1973年5-9月每日空氣質(zhì)量評估attenu多個觀測站觀測到的加利福尼亞23次地震數(shù)據(jù)beaver1

(beavers)一只海貍每10分鐘的體溫數(shù)據(jù),共114條數(shù)據(jù)beaver2

(beavers)另一只海貍每10分鐘的體溫數(shù)據(jù),共100條數(shù)據(jù)cars1920年代,汽車的速度與剎車距離chickwts不同飲食種類對小雞重量的影響esoph喝酒,吸煙對食管癌的影響faithful一個間歇泉的爆發(fā)時間和持續(xù)時間InsectSprays不同殺蟲劑對昆蟲數(shù)目的影響irisEdgarAnderson記錄的3種鳶尾花形態(tài)數(shù)據(jù)LifeCycleSavings50個國家的存款率mtcars32輛汽車的11個指標(biāo)數(shù)據(jù)PlantGrowth三種處理方式對植物產(chǎn)量的影響內(nèi)置數(shù)據(jù)集常用的數(shù)據(jù)集內(nèi)置數(shù)據(jù)集數(shù)據(jù)集描述pressure溫度和氣壓puromycin兩種細胞中因子濃度對酶促反應(yīng)的影響quakes1000次地震觀測數(shù)據(jù)(震級>4)sleep兩種藥物的催眠效果stackloss化工廠將氨轉(zhuǎn)為硝酸的數(shù)據(jù)swiss瑞士生育率和社會經(jīng)濟指標(biāo)ToothGrowthVC劑量和攝入方式對豚鼠牙齒的影響trees樹木形態(tài)指標(biāo)USArrests美國50個州的四個犯罪率指標(biāo)USJudgeRating43名律師的12個評價指標(biāo)warpbreaks織布機異常數(shù)據(jù)women15名美國女性的身高和體重情況常用數(shù)據(jù)集(接上頁)了解R語言R起源、R優(yōu)缺點下載使用R和RStudioR語言編程特點包、數(shù)據(jù)集小結(jié)39第一個R語言會話開發(fā)環(huán)境配置程序編寫運行第一個R語言會話安裝1:R軟件實驗用R版本:R4.1.2forWindows或更高安裝2:集成開發(fā)環(huán)境RStudio/products/rstudio/免費的圖形界面編輯器,更友好的界面及更強的操作性。實驗用RStudio版本:RStudioDesktop2021.09.1+372或更高軟件下載與安裝參考第一章綜合實驗指導(dǎo)R軟件的控制臺窗口安裝1:R軟件RStudio是專門用于R語言環(huán)境的IDE,本課程推薦使用。安裝2:集成開發(fā)環(huán)境RStudio工作空間(Workspace)是RStudio當(dāng)前的工作環(huán)境,存儲了用戶定義的所有對象(向量、矩陣、列表、數(shù)據(jù)框、函數(shù))。工作空間管理在RStudio中寫程序1.書寫規(guī)范 2.命令提示符 3.腳本文件 4.運算符 5.元素命名 6.函數(shù) 7.注釋 8.獲取幫助 程序編寫運行R是一種區(qū)分大小寫的解釋性語言??梢栽诿钐崾痉?>)后,輸入并執(zhí)行一條命令,或者一次性執(zhí)行寫在腳本文件中的一組命令。R中有多種數(shù)據(jù)類型,包括向量、矩陣、數(shù)據(jù)框以及列表。R中的很多功能是由程序內(nèi)置函數(shù)和用戶自編函數(shù)提供的,一次交互會話期間的所有數(shù)據(jù)對象都被保存在內(nèi)存中。一些基本函數(shù)是默認(rèn)直接使用,而有些函數(shù)則需加載程序包。編寫“Hello,World!”程序1.書寫規(guī)范大小寫敏感基本命令:表達式(expressions),賦值(assignments)命令分割:可以用“;”隔開,或者另起一行程序塊:通過大括弧({和})放在一起構(gòu)成一個復(fù)合表達式注釋:一行中,從“#”開始到句子收尾之間的語句是注釋不需要命名基本數(shù)據(jù)類型和對象編寫“Hello,World!”程序2.命令提示符啟動R語言解釋器,會得到提示“>”,其后輸入程序。>myString<-"Hello,World!">print(myString)[1]"Hello,World!"編寫“Hello,World!”程序3.腳本文件腳本語言(scriptinglanguage):是依靠解釋器完成相應(yīng)功能的一類計算機語言,通常以ASCII碼的文本格式保存源程序。腳本語言是解釋型語言,和編譯型語言相比,速度較慢。#MyfirstprograminR

ProgrammingmyString<-"Hello,World!"print(myString)test.R腳本語言(RScript)

腳本文件>source("test.R")[1]"Hello,World!"執(zhí)行腳本文件C:\Rscripttest.R[1]"Hello,World!"編寫“Hello,World!”程序3.腳本文件在RStudio中執(zhí)行腳本文件使用RScript執(zhí)行腳本文件注意:文件的位置編寫“Hello,World!”程序4.運算符

賦值符號:<-或->或=運算符號:+(加)、-(減)、*(乘)、/(除)、^(乘方)、%/%整除、%%求余邏輯判斷符號:>(大于)、<(小于)、>=(大于等于)、<=(小于等于)、!=(不等)、==(相等)邏輯運算符號:&(邏輯與)、|(邏輯或)、!(邏輯非)編寫“Hello,World!”程序5.元素命名區(qū)分大小寫,注意China和china的不同。數(shù)字、字母、“.”和“_”都是允許的,但必須以.或者字母開頭;如果以.開頭,第二個字符不允許是數(shù)字;不能用數(shù)字開頭,數(shù)字可以放在中間或結(jié)尾,例如result2。建議不要用過短的名稱,可以用”.”作為間隔,例如:anova.out1。不要使用保留名,例如:NA,NaN,pi,LETTERS,等。編寫“Hello,World!”程序6.函數(shù)R語言的功能依靠函數(shù)來實現(xiàn)。函數(shù)形式:函數(shù)(輸入數(shù)據(jù),參數(shù)=)如果參數(shù)值沒有指定,以默認(rèn)值為準(zhǔn)。函數(shù)包括自定義函數(shù),泛型函數(shù)……#MyfirstprograminRProgrammingmyString<-"Hello,World!"print(myString)編寫“Hello,World!”程序7.注釋注釋能幫助讀懂程序,在實際執(zhí)行程序時注釋部分會被解釋器忽略。單行注釋:使用#,其后內(nèi)容為注釋部分。或者使用“”或’’來顯示要注釋部分。#MyfirstprograminRProgrammingmyString<-"Hello,World!"print(myString)if(FALSE){"Thisisademo."}myString<-"Hello,World!"print(myString)8.獲取幫助R的內(nèi)置幫助系統(tǒng)提供了當(dāng)前已安裝包中所有函數(shù)的細節(jié)、參考文獻以及使用示例。編寫“Hello,World!”程序函數(shù)功能help.start()打開幫助文檔help("plot")或者

?plot查看函數(shù)plot的幫助(引號可以省略)help.search("plot")或者??plot以plot為關(guān)鍵詞搜索本地幫助文檔example(“plot”)函數(shù)plot的使用示例(引號可以省略)RSiteSearch("plot")以plot為關(guān)鍵詞搜索在線文檔個郵件列表存檔apropos("plot",mode="function")列出名稱中含有plot的所有可用函數(shù)data()列出當(dāng)前已加載包中所含的所有可用示例數(shù)據(jù)集vignette()列出當(dāng)前已經(jīng)安裝包中所有可能的vignette文檔vignette(“plot”)為主題plot顯示指定的vignette文檔第一個R語言會話開發(fā)環(huán)境配置軟件下載與安裝工作空間管理程序編寫運行小結(jié)571.書寫規(guī)范2.命令提示符3.腳本文件4.運算符 5.元素命名 6.函數(shù) 7.注釋8.獲取幫助#MyfirstprograminRProgrammingmyString<-"Hello,World!"print(myString)test.R了解R語言R起源、下載使用、R程序特點、包、數(shù)據(jù)集第一個R語言會話開發(fā)環(huán)境配置程序編寫運行本章小結(jié)58綜合實驗掌握R軟件的下載和安裝過程。掌握RStudio軟件的下載和安裝過程。掌握R語言編程基本規(guī)范。掌握R語言的工作空間管理和使用。掌握包的下載安裝函數(shù)。了解rmarkdown的使用方法。能夠通過help方法自學(xué)函數(shù)及其中參數(shù)的用法。實驗?zāi)繕?biāo)第1章講義中的案例第1章綜合實驗第1章使用的函數(shù)第1章思考與練習(xí)實驗內(nèi)容及資料目標(biāo):掌握R軟件的下載和安裝過程1.R軟件官網(wǎng)2.R軟件下載本書使用的R版本為R4.1.2forWindows選擇鏡像地址3.R軟件安裝安裝路徑不能包含中文實驗1:R軟件安裝目標(biāo):掌握RStudio軟件的下載和安裝過程RStudio軟件官網(wǎng)免費版2.RStudio軟件下載本書使用的版本為RStudioDesktop2021.09.13.RStudio軟件安裝安裝路徑不能出現(xiàn)中文,和R安裝路徑在同一個目錄下4.RStudio軟件使用5.RStudio的菜單和快捷方式實驗2:RStudio安裝目標(biāo):掌握R語言編程基本規(guī)范書寫規(guī)范:包含數(shù)字、字母、“.”和“_”命令提示符運算符函數(shù)文件腳本注釋:使用#獲取幫助:help(),?,help.start(),data()實驗3:

編寫“HelloWorld!”程序目標(biāo):掌握R語言的工作空間管理和使用工作空間的設(shè)置工作路徑的讀取新工作路徑的設(shè)置工作空間的保存實驗4:工作空間的管理和使用常用函數(shù):getwd(),setwd()ls(),rm(),help(),options()history(),save.image(),save()load(),q()目標(biāo):掌握包的下載安裝函數(shù);了解rmarkdown的使用方法。配置安裝Rmarkdown的環(huán)境Rmarkdown包的使用實驗5:Rmarkdown包的安裝和使用(拓展)常用函數(shù):library(),require()library(help="package_name")find.package(),detach(),attach()思考與討論數(shù)據(jù)對象目錄數(shù)據(jù)類型數(shù)值型(numeric)、字符型(character)、復(fù)數(shù)型(complex)、邏輯型(logical)、特殊值等數(shù)據(jù)結(jié)構(gòu)向量(vector)、數(shù)組(array)、矩陣(matrix)、數(shù)據(jù)框(dataframe)、列表(list)、因子(factor)等綜合實驗大小寫敏感。命名:數(shù)字、字母、“.”和“_”都是允許的。不過,一個命名必須以.或者字母開頭。如果以.開頭,第二個字符不允許是數(shù)字?;久睿罕磉_式(expressions),賦值(assignments)。命令分割:可以用“;”

隔開,或者另起一行。程序塊:基本命令可以通過大括弧({和})放在一起構(gòu)成一個復(fù)合表達式。注釋:一行中,從“#”

開始到句子收尾之間的語句是注釋?;緮?shù)據(jù)類型:數(shù)值型(numeric)、字符型(character)、復(fù)數(shù)型(complex)和邏輯型(logical)?;緮?shù)據(jù)結(jié)構(gòu):向量(vector)、數(shù)組(array)、矩陣(matrix)、數(shù)據(jù)框(dataframe)、列表(list)、因子(factor)等。R語言特點(復(fù)習(xí))數(shù)據(jù)類型x

8a

'city'變量的賦值基本賦值語句answer

value變量名/賦值對象值賦值符號R語言常見的數(shù)據(jù)類型:字符型、數(shù)值型、邏輯型、復(fù)數(shù)型此外還有一些特殊值:NA:表示缺失值(Missingvalue),是“NotAvailable”的縮寫Inf:表示無窮大,是“Infinite”的縮寫NaN:表示非數(shù)值,是“NotaNumber”的縮寫NULL:表示空值,即沒有內(nèi)容數(shù)據(jù)類型數(shù)據(jù)類型辨別函數(shù)轉(zhuǎn)換函數(shù)characteris.character()as.character()complexis.complex()as.complex()integeris.integer()as.integer()logicalis.logical()as.logical()numericis.numeric()as.numeric()NAis.na()as.na()在R中,字符型的日期值無法進行日期變量的計算,可通過日期值處理函數(shù),將字符型的日期值轉(zhuǎn)換成日期變量。日期類型函數(shù)功能Sys.Date()返回系統(tǒng)當(dāng)前的日期Sys.time()返回系統(tǒng)當(dāng)前的日期和時間date()返回系統(tǒng)當(dāng)前的日期和時間(返回的值為字符串)as.Date()將字符串形式的日期值轉(zhuǎn)換為日期變量as.POSIXlt將字符串轉(zhuǎn)化為包含時間及時區(qū)的日期變量strptime()將字符型變量轉(zhuǎn)化為包含時間的日期變量strftime()將日期變量轉(zhuǎn)換成指定格式的字符型變量format()將日期變量轉(zhuǎn)換成指定格式的字符串a(chǎn)s.Date():將字符串形式的日期值轉(zhuǎn)換為日期變量。使用格式:as.Date(x,format="",...)其中x是要轉(zhuǎn)換的對象,為字符型數(shù)據(jù),format則給出了用于讀入日期的適當(dāng)格式。日期類型符號含義示例符號含義示例%d數(shù)字表示的日期01~31%Y四位數(shù)的年份2023%a縮寫的星期名Mon%H24小時制小時00-23%A非縮寫的星期名Monday%I12小時制小時01-12%w數(shù)字表示0-6%pAM/PM指示AM/PM%m數(shù)字表示的月份00~12%M十進制的分鐘00-60%b縮寫的月份Jan%S十進制的秒00-60%B非縮寫的月份January%y二位數(shù)的年份16其他日期類型as.POSIXlt()strptime()strftime()format()

日期類型#時間變量的轉(zhuǎn)換#創(chuàng)建一個字符型日期時間變量>x<-c("2023-02-0810:07:52","2023-08-0719:33:02")#判定是否為字符型變量>is.character(x)[1]TRUE#對字符串形式的日期時間值按照格式進行轉(zhuǎn)換>as.POSIXlt(x,tz="","%Y-%m-%d%H:%M:%S")[1]"2023-02-0810:07:52CST""2023-08-0719:33:02CST">(x<-strptime(x,"%Y-%m-%d%H:%M:%S"))[1]"2023-02-0810:07:52CST""2023-08-0719:33:02CST">strftime(x,format="%Y/%m/%d")[1]"2023/02/08""2023/08/07“#輸出的格式轉(zhuǎn)換成format定義的格式>format(x,"%d/%m/%Y")[1]"08/02/2023""07/08/2023"查看對象的類型使用格式:class(x)、mode(x)、typeof(x)。其中x為需要查看類型的對象。mode()函數(shù)查看數(shù)據(jù)的大類,class()函數(shù)查看數(shù)據(jù)的類,typeof()函數(shù)則更加細化,查看數(shù)據(jù)的細類。對于未知類型的對象,在R中有3個函數(shù)可以查看對象的類型:>df<-data.frame(c1=letters[1:3],c2=1:3,c3=c(1,-1,3.0),stringsAsFactors=F)>sapply(df,mode)c1c2c3"character""numeric""numeric">sapply(df,class)c1c2c3"character""integer""numeric">sapply(df,typeof)c1c2c3"character""integer""double"數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)R有許多用于存儲數(shù)據(jù)的結(jié)構(gòu),包括向量、矩陣、數(shù)組、數(shù)據(jù)框、列表和因子。向量向量的創(chuàng)建、等差序列、重復(fù)序列、向量索引、NA和NULL值、編輯、排序矩陣和數(shù)組矩陣的創(chuàng)建、合并、拉直、索引、行和列的計算、行列命名、數(shù)組創(chuàng)建、維度數(shù)據(jù)框和列表數(shù)據(jù)框的創(chuàng)建、索引、列表的創(chuàng)建、索引因子因子的創(chuàng)建、level(水平)、因子序列、因子的存儲數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu):向量向量以一維數(shù)組的方法管理數(shù)據(jù),是R語言中最基本的數(shù)據(jù)結(jié)構(gòu)。向量可以是數(shù)值型、字符型、邏輯值型(T、F)和復(fù)數(shù)型。實例:創(chuàng)建不同類型的向量“:”運算符,生成指定范圍內(nèi)數(shù)值構(gòu)成的向量。一個向量的所有元素都必須屬于相同的類型。如果不是,R將強制執(zhí)行類型轉(zhuǎn)換。>x1<-c(1,2,3,4)#創(chuàng)建數(shù)值型向量,可寫成x1=c(1:4)>x2<-c("a","b","c","d")#創(chuàng)建字符型變量>x3<-c(TRUE,FALSE,FALSE,TRUE)#創(chuàng)建邏輯型變量向量c()函數(shù)創(chuàng)建向量length()測向量長度>w<-c(1,3,4,5,6,7)>length(w)[1]6>mode(w)[1]“numeric”>w2<-c(T,F,T)>length(w2)[1]3>mode(w2)[1]"logical">w1<-c('張三','李四','王五')>length(w1)[1]3>mode(w1)[1]"character"向量一個向量的所有元素都必須屬于相同的類型。如果不是,R將強制執(zhí)行類型轉(zhuǎn)換。>w4<-c(w,w1)>w4[1]"1""3""4""5""6""7""張三""李四""王五">mode(w4)[1]"character">w5<-c(w1,w2)>w5[1]"張三""李四""王五""TRUE""FALSE""TRUE">mode(w5)[1]"character">(w<-seq(1:10))

[1]12345678910>(x<-sqrt(w))[1]1.0000001.4142141.7320512.0000002.2360682.4494902.6457512.8284273.0000003.162278向量的運算R語言最強大的方面之一就是函數(shù)的向量化。向量的算術(shù)運算如果兩個向量的長度不同?>(w1<-c(2,3,2,3))[1]2323>(w2<-c(3,1,4,2,5,3))[1]314253>(w<-w1+w2)[1]546576Warningmessage:Inw1+w2:longerobjectlengthisnotamultipleofshorterobjectlengthseq(from=1,to=1,by=((to-from)/(length.out-1)),length.out=NULL,along.with=NULL,...)等差序列的創(chuàng)建seq()產(chǎn)生等距間隔的數(shù)列,其基本形式為:參數(shù)描述from等差數(shù)列的首項數(shù)據(jù),默認(rèn)為1to等差數(shù)列的尾項數(shù)據(jù),默認(rèn)為1by等差的數(shù)值length.out產(chǎn)生向量的長度>(seq(1,-9))[1]10-1-2-3-4-5-6-7-8-9>(seq(1,-9,length=5))[1]1.0-1.5-4.0-6.5-9.0>(seq(1,-9,by=-2))[1]1-1-3-5-7-9>(seq(1,10,2))[1]13579重復(fù)序列的創(chuàng)建rep()是重復(fù)函數(shù),其基本形式:rep(x,n)其中x是預(yù)重復(fù)的序列,n是重復(fù)的次數(shù)。>(rep(1:4,2))[1]12341234>(rep(1:4,each=2))[1]11223344>(rep(1:4,c(2,2,2,2)))[1]11223344>(rep(1:4,c(2,1,2,1)))[1]112334>(rep(1:4,each=2,len=4))[1]1122>(rep(1:4,each=2,times=3))[1]112233441122334411223344練習(xí)創(chuàng)建一個向量x,內(nèi)含等差數(shù)列:首位為1.7,等差為0.1,長度為5創(chuàng)建向量y,y為重復(fù)序列:元素為“red”、“orange”、“green”,各元素重復(fù)兩次,序列長度為5向量索引索引,用方括號[]來實現(xiàn),也稱之為子集、下標(biāo)或切片。索引是R中最重要和最常用的運算符。索引用來選擇向量中部分或個別元素來構(gòu)成子向量。向量1[向量2]:向量1中索引為向量2的那些元素。atcbfgh1234567vector:index:向量索引

R語言中,提供如下多種索引方法。給向量傳入正數(shù),它會返回此位置上的向量元素切片。它的第一個位置是1(而不像其他某些語言一樣是0)。給向量傳入負(fù)數(shù),它會返回一個向量切片,它將包含除了這些位置以外的所有元素。給向量傳入一個邏輯向量,它會返回一個向量切片,里面只包含索引為TRUE的元素。對于已命名的向量,給向量傳入命名的字符向量,將會返回向量中包含這些名字的元素切片。向量索引x[n] 第n個元素x[-n] 除了第n個元素的xx[1:n] 前n個元素x[-(1:n)] 第n+1至最后的元素x[c(1,4,2)] 指定元素x["name"] 名為"name"的元素x[x>3] 所有大于3的元素x[x>3&x<5] 區(qū)間(3,5)的元素x[x%in%c("a","and","the")]給定組中的元素例向量索引>x<-c(2,4,6,8,1)>x[c(1,3,5)][1]261>x[c(-2,-4)][1]261>x[c(TRUE,FALSE,TRUE,FALSE,TRUE)][1]261>names(x)<-c('one','two','three','four','five')>x[c('one','three','four')]onethreefour268>x[c(1,-1)]Errorinx[c(1,-1)]:only0'smaybemixedwithnegativesubscripts如果給每個元素命名,該方法也將返回相同的值:三個索引方法都將返回相同的值:混合使用正負(fù)值是不允許的,會拋出一個錯誤:NA和NULL值NA:缺失值,NULL:不存在的值。subset()函數(shù),在向量中篩選符合條件的值,它可以自動過濾NA值。>x<-c(2,4,6,8,1,NA)>subset(x,x>5)[1]6,8>x[x>5][1]6,8,NA>x<-c(2,4,6,NA)>mean(x)[1]NA>mean(x,na.rm=T)[1]4>x<-c(2,4,6,NULL)>mean(x)4向量索引which()函數(shù)將返回邏輯向量中為TRUE的位置。which.min和which.max分別是which(min(x))和which(max(x))的簡寫:>x<-c(2,4,6,8,1)>which(x>3)[1]234>which.min(x)[1]5>which.max(x)[1]4向量編輯R語言可以對已經(jīng)創(chuàng)建好的向量直接進行元素擴展及刪除等編輯操作。向量中元素的刪除通過減號加元素下標(biāo)的形式實現(xiàn)。例:向量元素的擴展及刪除#向量編輯>x<-c(1,2,3,4)#向量擴展>(x<-c(x,c(5,6,7)))[1]1234567#單個元素的刪除>(x<-x[-1])[1]234567#多個元素的刪除>(x<-x[c(3:5)])[1]456使用sort()等函數(shù)進行排序。向量排序sort()函數(shù)常用參數(shù)常用參數(shù)參數(shù)描述選項x

排序的對象排序的對象為數(shù)值型,也可以是字符型。decreasing

排序的順序默認(rèn)設(shè)置為FALSE,即升序排序。設(shè)置為TRUE時,為降序排序。na.last

是否將缺失值放到序列的最末尾。默認(rèn)設(shè)置為FALSE,設(shè)置為TRUE時將向量中的NA值放到序列的最末尾。向量vector用于描述一維數(shù)據(jù),是R語言中最基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu)形式。矩陣matrix描述二維數(shù)據(jù),和向量相似,其內(nèi)部元素可以是實數(shù)、復(fù)數(shù)、字符、邏輯型數(shù)據(jù)。矩陣matrix使用兩個下標(biāo)來訪問元素,A[i,j]表示矩陣A第i行、第j列的元素。多維數(shù)組array描述多維數(shù)據(jù)。array有一個特征屬性叫維數(shù)向量(dim屬性),它的長度是多維數(shù)組的維數(shù),dim內(nèi)的元素則是對應(yīng)維度的長度。矩陣是數(shù)組的特殊情況,它具有兩個維度。數(shù)據(jù)結(jié)構(gòu):矩陣和數(shù)組matrix()函數(shù),以向量形式輸入矩陣中的全部元素,使用ncol和nrow設(shè)置矩陣的行和列數(shù)。注意向量1~10是按列填充的,如果想要以行為單位填充,則可以將參數(shù)byrow設(shè)置為TRUE。矩陣創(chuàng)建>(w<-seq(1:10))[1]12345678910>(a<-matrix(w,nrow=5,ncol=2))[,1][,2][1,]16[2,]27[3,]38[4,]49[5,]510>(a<-matrix(w,nrow=5,ncol=2,byrow=T))[,1][,2][1,]12[2,]34[3,]56[4,]78[5,]910在創(chuàng)建矩陣時,也可以使用dimnames參數(shù)設(shè)置行和列的名稱。矩陣創(chuàng)建>(a<-matrix(w,nrow=5,ncol=2,byrow=T,dimnames=list(paste0('r',1:5),paste0('l',1:2))))l1l2r112r234r356r478r5910函數(shù)cbind()把其橫向拼成一個大矩陣,rbind()把其縱向拼成一個大矩陣。合并cbind()時高度(行數(shù))應(yīng)該相等。rbind()合并時寬度相等。如果參與合并的變量不一致,則循環(huán)不足后合并。矩陣合并>(x1<-cbind(c(1,2),c(3,4)))[,1][,2][1,]13[2,]24>(x1<-rbind(c(1,2),c(3,4)))[,1][,2][1,]12[2,]34>cbind(x1,1)[,1][,2][,3][1,]121[2,]341矩陣的拉直設(shè)A是一個矩陣,則函數(shù)as.vector(A)可以將矩陣轉(zhuǎn)化為向量。如:>(A<-matrix(1:6,2,3))[,1][,2][,3][1,]135[2,]246>as.vector(A)[1]123456矩陣的行或列計算colSums()對矩陣各列求和colMeans()求矩陣各列的均值rowSums()對矩陣各行求和rowMeans()求矩陣各列的均值>(A<-matrix(1:16,4,4))[,1][,2][,3][,4][1,]15913[2,]261014[3,]371115[4,]481216>colSums(A)[1]10264258>colMeans(A)[1]2.56.510.514.5>rowSums(A)[1]28323640>rowMeans(A)[1]78910R語言中有豐富的矩陣運算的函數(shù),包括四則運算、對矩陣各行列的求和、對矩陣各行列的求均值、轉(zhuǎn)置等。矩陣的運算函數(shù)功能+-*/四則運算,要求矩陣的維數(shù)相同,對對應(yīng)位置的各元素進行運算colSums()對矩陣的各列求和rowSums()對矩陣的各行求和colMeans()對矩陣的各列求均值rowMeans()對矩陣的各行求均值t()對矩陣的行列進行轉(zhuǎn)置det()求解方陣的行列式outer()求解矩陣的外積(叉積)%*%矩陣乘法,要求第一個矩陣的列數(shù)與第二個矩陣的行數(shù)相同diag()對矩陣取對角元素,若對象為向量,則生成以向量為對角元素的對角矩陣solve()對矩陣求解逆矩陣,要求矩陣可逆x[i,j] 下標(biāo)為(i,j)的元素x[i,] 第i行x[,j] 第j列x[,c(1,3)]第1和3列x["name",]名為"name"的行矩陣索引數(shù)組是矩陣的擴展,它把數(shù)據(jù)的維度擴展到兩個以上。通過函數(shù)array()方便地創(chuàng)建數(shù)組。數(shù)組創(chuàng)建建立一個三維數(shù)據(jù)的數(shù)組,其維度是2*5*3。在結(jié)果中會依次展示3個2行5列的矩陣。>(w_array<-array(1:30,dim=c(2,5,3))),,1[,1][,2][,3][,4][,5][1,]13579[2,]246810,,2[,1][,2][,3][,4][,5][1,]1113151719[2,]1214161820,,3[,1][,2][,3][,4][,5][1,]2123252729[2,]2224262830對于矩陣和數(shù)組,dim()

函數(shù)將返回其維度的整數(shù)值向量:對于矩陣,函數(shù)nrow()

和ncol()

將分別返回行數(shù)和列數(shù):矩陣行、列和維度>a_matrix<-matrix(1:10,nrow=5,ncol=2)>w_array<-array(1:30,dim=c(2,5,3))>dim(a_matrix)[1]52>dim(w_array)[1]253>nrow(a_matrix)[1]5>ncol(a_matrix)[1]2建立下圖所示的矩陣:對第2行、第3列進行索引練習(xí)v1v2v3v4u112710u234811u356912數(shù)據(jù)框data.frame和列表list,也是一個二維數(shù)據(jù)。在使用R語言進行數(shù)據(jù)分析和挖掘的過程中,向量和數(shù)據(jù)框的使用頻率是最高的,list則在存儲較復(fù)雜的數(shù)據(jù)時作為數(shù)據(jù)對象類型。數(shù)據(jù)結(jié)構(gòu):數(shù)據(jù)框和列表數(shù)據(jù)框是僅次于向量的最重要的數(shù)據(jù)對象類型。在實際操作中,通常會用數(shù)據(jù)框的一列代表某一變量屬性的所有取值,用一行代表某一樣本數(shù)據(jù)。data.frame()函數(shù)可以直接把多個向量建立為一個數(shù)據(jù)框,并為列設(shè)置名稱。數(shù)據(jù)框創(chuàng)建>(my.datasheet<-data.frame(site=c('A','B','A','A','B'),+season=c('winter','summer','summer','spring','fall'),+pH=c(7.4,6.3,8.6,7.2,8.9)))siteseasonpH1Awinter7.42Bsummer6.33Asummer8.64Aspring7.25Bfall8.9可以通過names(<數(shù)據(jù)框>)來讀取并編輯列名稱。數(shù)據(jù)框創(chuàng)建>names(my.datasheet)[1]"site""season""pH">names(my.datasheet)[1]<-'type'>names(my.datasheet)[1]"type""season""pH"索引列<數(shù)據(jù)框?qū)ο?gt;[,列下標(biāo)向量],直接獲取相應(yīng)列的所有元素,并以數(shù)據(jù)框?qū)ο笮问椒祷?。例:iris[,2]索引行<數(shù)據(jù)框?qū)ο?gt;[行下標(biāo),],直接獲取相應(yīng)行的所有元素,例如:iris[1:2,]數(shù)據(jù)框索引列名稱索引列下標(biāo)索引<數(shù)據(jù)框?qū)ο?gt;$列名稱<數(shù)據(jù)框?qū)ο?gt;[[“名稱”]]<數(shù)據(jù)框?qū)ο?gt;[[列下標(biāo)]]<數(shù)據(jù)框?qū)ο?gt;[,列下標(biāo)]iris$Sepal.Lengthiris[["Sepal.Length"]]iris[[2]]iris[,2]iris[1:2,]list()可以用于創(chuàng)建列表對象。例:以下對象my.list由三個成分組成:第一個是名稱為stud.id的數(shù)值,第二個是名稱為的字符串,第三個是名稱為stud.marks的數(shù)值向量。列表創(chuàng)建>(my.list<-list(stud.id=34453,+='張三',+stud.marks=c(14.3,12,15,19)))$stud.id[1]34453$[1]"張三"$stud.marks[1]14.312.015.019.0可以使用函數(shù)length()來檢查列表成分的個數(shù)可以通過函數(shù)unlist()把列表中的所有元素轉(zhuǎn)換為向量元素,轉(zhuǎn)換后的向量元素的個數(shù)和列表中所有數(shù)據(jù)對象的個數(shù)相同。列表創(chuàng)建>unlist(my.list)stud.idstud.marks1stud.marks2stud.marks3stud.marks4"34453""張三""14.3""12""15""19“>length(my.list)[1]3列表索引索引x[n] 列表顯示元素nx[[n]] 列表的第n個元素x[["name"]]名為"name"的元素x$name 同上.因子提供了一個簡單而又緊湊的形式來處理分類數(shù)據(jù)。因子用level(水平)來表示所有可能的取值。如果數(shù)據(jù)集有取值個數(shù)固定的分類變量,因子特別有用。通過factor()函數(shù)創(chuàng)建因子,使用格式:factor(x=character(),levels,labels=levels,exclude=NA,ordered=is.ordered(x),nmax=NA)數(shù)據(jù)結(jié)構(gòu):因子通過factor()函數(shù)創(chuàng)建因子,參數(shù)如下。創(chuàng)建因子參數(shù)描述x表示需要創(chuàng)建為因子的數(shù)據(jù),是一個向量levels表示所創(chuàng)建的因子數(shù)據(jù)的水平,如果不指定的話,就是x中不重復(fù)的所有值labels用來標(biāo)識這一水平的名稱,與水平一一對應(yīng),方便用戶識別exclude表示有哪些水平是不需要的ordered一個邏輯值,若為TRUE,表示有序因子,為FALSE則表示無序因子nmax表示水平個數(shù)的上限通過gl()函數(shù)創(chuàng)建因子。創(chuàng)建因子使用格式:gl(n,k,length=n*k,labels=seq_len(n),ordered=FALSE)參數(shù)描述n表示因子水平的個數(shù)k表示每個水平的重復(fù)數(shù)length表示生成的序列的長度labels一個n維向量,表示因子水平ordered一個邏輯值,若為TRUE,表示有序因子,為FALSE則表示無序因子通過下面的例子,可以加深理解因子的儲存形式。因子型數(shù)據(jù)的儲存原理>chr<-c('R','Python','R','Ruby','Lisp','R')>class(chr)[1]"character">(f<-factor(chr))[1]RPythonRRubyLispRLevels:LispPythonRRuby>class(f)[1]"factor">storage.mode(f)[1]"integer">as.numeric(f)[1]323413>levels(f)[1]"Lisp""Python""R""Ruby"通過這個例子,可以知道f的類型是整數(shù)形式,并且1對應(yīng)的是“Lisp”,2對應(yīng)的是“Python”,3對應(yīng)的是“R”,4對應(yīng)的是“Ruby”,這些是按照字母順序排序的。小結(jié)數(shù)據(jù)類型數(shù)值型(numeric)、字符型(character)、復(fù)數(shù)型(complex)、邏輯型(logical)、特殊值數(shù)據(jù)結(jié)構(gòu)向量(vector)、數(shù)組(array)、矩陣(matrix)、數(shù)據(jù)框(dataframe)、列表(list)、因子(factor)綜合實驗鞏固R語言數(shù)據(jù)類型和數(shù)據(jù)結(jié)構(gòu)的概念。掌握數(shù)據(jù)對象轉(zhuǎn)換和辨別函數(shù)的使用方法。掌握向量、矩陣、數(shù)組、數(shù)據(jù)框、列表、因子的常用方法,并能靈活綜合運用。熟悉集成開發(fā)環(huán)境RStudio。能夠通過help方法自學(xué)函數(shù)及其中參數(shù)的用法。實驗?zāi)繕?biāo)第2章講義中的案例第2章綜合實驗第2章使用的函數(shù)第2章思考與練習(xí)實驗內(nèi)容及資料目標(biāo):掌握數(shù)據(jù)對象轉(zhuǎn)換和辨別函數(shù)的使用方法。內(nèi)容:學(xué)習(xí)R中常見數(shù)據(jù)類型的辨別與轉(zhuǎn)換函數(shù),從中選擇3-5個函數(shù)編程實現(xiàn),并分析數(shù)據(jù)對象的類型。思路:數(shù)據(jù)類型的辨別與轉(zhuǎn)換數(shù)據(jù)類型的查看實驗1:數(shù)據(jù)對象的轉(zhuǎn)換數(shù)據(jù)類型辨別函數(shù)轉(zhuǎn)換函數(shù)數(shù)值型(numeric)is.numeric()as.numeric()字符型(character)is.character()as.character()邏輯型(logical)is.logical()as.logical()復(fù)數(shù)型(complex)plex()plex()整數(shù)型(integer)eger()eger()浮點型(double)is.double()as.double()特殊值(NA)is.na()as.na()mode()class()typeof()目標(biāo):學(xué)習(xí)R語言數(shù)據(jù)結(jié)構(gòu)的概念,掌握向量的運用。內(nèi)容:實驗2:向量A班《微積分》與《線性代數(shù)》成績?nèi)缦拢何⒎e分

1008877665544線性代數(shù)997060873191(1)利用R語言向量求出班里人數(shù)(2)求出微積分成績的最大值和最小值length(x)#判斷向量的長度which.min(x)#求向量的最小值所在的位置x[which.min(x)]#索引最小值位置的數(shù)值目標(biāo):學(xué)習(xí)R語言數(shù)據(jù)結(jié)構(gòu)的概念,掌握矩陣的運用。內(nèi)容:實驗3:矩陣1.創(chuàng)建矩陣(1)將已有數(shù)據(jù)轉(zhuǎn)化為矩陣(2)特殊矩陣的快捷創(chuàng)建方法2.矩陣的查看(1)查看矩陣的維數(shù)(2)提取矩陣的行數(shù)與列數(shù)(3)引用元素(4)給行列命名(5)調(diào)用行列名3.矩陣的運算(1)將多個矩陣合并(2)矩陣的加減乘(3)矩陣的逆(4)矩陣的轉(zhuǎn)置(5)特征值分解實驗3:矩陣matrixmatrix(0,nrow=3,ncol=3)diag(rep(1,4)))#創(chuàng)建一個對角線上全是1的矩陣,diag為對角矩陣diag(1:4)#創(chuàng)建一個對角線上元素不同的矩陣dim()#查看矩陣的維數(shù)nrow()#查看矩陣的行數(shù)ncol()#查看矩陣的列數(shù)colnames(M)=paste0(“x_”,1:4)#給矩陣的列命名rownames(M)=1:3#給矩陣的行命名rbind(A,B)#將矩陣列對齊,行相加(r代表行,row)cbind(A,B)#將矩陣行對齊,列相加(c代表列,col)solve()#矩陣的逆t()#矩陣的轉(zhuǎn)置實驗3:矩陣設(shè)有如下所示矩陣(1)創(chuàng)建矩陣,將上述矩陣存入變量x中;(2)將列向量(2,3,4)合并到矩陣x中得到矩陣y;(3)求矩陣y與yT(可以將yT命名為z)之和m,并在m中檢索出下標(biāo)為[2,3]的元素輸出。122335matrix(c(1,2,3,2,3,5),nrow=3)cbind(x,c(2,3,4))#矩陣和合并z<-t(y)#求y的轉(zhuǎn)置m<-y+z#求和目標(biāo):學(xué)習(xí)R語言數(shù)據(jù)結(jié)構(gòu)的概念,掌握數(shù)組的運用。內(nèi)容:實驗4:數(shù)組(1)創(chuàng)建數(shù)組(2)數(shù)組維度的查看(3)數(shù)組的復(fù)制(4)數(shù)組的四則運算(5)數(shù)組的調(diào)用(6)數(shù)組元素的訪問#創(chuàng)建數(shù)組,數(shù)組維數(shù)為3,各維度值為2,3,4array(1:24,c(2,3,4))array(1:6,c(1,2,3),dimnames=list(c("A1"),c("B1","B2"),c("C1","C2","C3")))dim(z)#查看數(shù)組維度a[1,,]#調(diào)用每一組矩陣中的第一行result<-apply(result,c(1),sum)#計算合計值實驗4:數(shù)組創(chuàng)建一個3維數(shù)組(數(shù)組中數(shù)據(jù)為連續(xù)整數(shù),從1開始),各維度下標(biāo)的最大值為2,3,4。數(shù)組各維度的名稱定義如下:dim1:("A1","A2")dim2:("B1","B2","B3")dim3:("C1","C2","C3","C4")(1)按要求創(chuàng)建數(shù)組z;(2)查看數(shù)組維度;(3)索引下標(biāo)為[2,3,2]的元素,索引維度名稱為["A2","B3","C2"]的元素并將其值修改為30。z["A2","B3","C2"]<-30#將["A2","B3","C2"]這個位置的值由12改為30目標(biāo):學(xué)習(xí)R語言數(shù)據(jù)結(jié)構(gòu)的概念,掌握數(shù)據(jù)框的運用。內(nèi)容:實驗5:數(shù)據(jù)框基于表格,創(chuàng)建數(shù)據(jù)框并進行以下操作。(1)查看數(shù)據(jù)框中的“altitude”列數(shù)據(jù)(索引列);(2)查看數(shù)據(jù)框中的“sample2”“sample3”行數(shù)據(jù)(索引行);(3)索引第3行第4列的元素;(4)編輯“family”列,將其修改成“genus”;(5)刪除數(shù)據(jù)框的第2行第3列。samplespeciesfamilyaltitudetypesample14015600type1sample25112350type2sample34611390type2sample43812260type3sample54910220type3實驗5:數(shù)據(jù)框nature<-data.frame()#創(chuàng)建數(shù)據(jù)框nature[,4]#索引第四列nature$altitude#按列的名稱索引nature[2:3,]#索引第2至3行names(nature)#讀取數(shù)據(jù)框中列名稱nature<-nature[-2,-3]#刪除數(shù)據(jù)框的第2行第3列目標(biāo):學(xué)習(xí)R語言數(shù)據(jù)結(jié)構(gòu)的概念,掌握列表的運用。內(nèi)容:實驗6:列表基于以下情景和數(shù)據(jù),在R中創(chuàng)建列表并實現(xiàn)以下功能:現(xiàn)有5種鮮花,對其大小、顏色列表如下:name:rose,lily,daisy,narcissus,peonysize:M,B,S,M,Bcolor:R,W,W,W,R(1)檢查列表成分的個數(shù);(2)用兩種方式索引第一列;(3)索引第二列第四個元素,并將其修改為S;(4)增加香味fragrance列,依次為(T,T,F(xiàn),T,T)實驗6:列表#創(chuàng)建列表mylist<-list(name=c(“rose“,”lily”,”daisy”,“narcissus”,“peony“),size=c(“M“,“B“,“S“,“M“,“B“),color=c(“R”,“W”,“W”,“W”,“R”))list(name=c(“Tom”),score=c(“89”,“94”,“87”))unlist()length()mylist[1]#索引第一列mylist[[2]][4]<-“S”#.索引第二列第四個元素,并將其修改為Smylist$fragrance<-c(“T”,“T”,“F”,“T”,“T”)#增加列表目標(biāo):學(xué)習(xí)R語言數(shù)據(jù)結(jié)構(gòu)的概念,掌握因子的運用。內(nèi)容:實驗7:因子使用factor()函數(shù)創(chuàng)建一個因子x;求該因子的個數(shù);獲取該因子的名稱;獲取該因子的有序數(shù)據(jù)。實驗7:因子#創(chuàng)建因子week<-factor(c(“Fri“,“Mon“,“Mon“,“Tues“,“Sun“,“Sat“,“Wedn“,“Fri","Thur"))nlevels(week)#使用nlevels()函數(shù)求因子的個數(shù)as.numeric(week)#向量和整數(shù)的映射關(guān)系levels(week)#使用levels()函數(shù)獲取因子的名稱ordered(week)#使用ordered()函數(shù)獲取因子的有序數(shù)據(jù)思考與討論數(shù)據(jù)管理控制結(jié)構(gòu)編寫函數(shù)apply函數(shù)族數(shù)據(jù)輸入與輸出綜合實驗?zāi)夸?37控制結(jié)構(gòu)R是塊狀結(jié)構(gòu)程序語言塊由大括號{}劃分程序語句換行符或“;”分割基本控制結(jié)構(gòu)順序結(jié)構(gòu)分支結(jié)構(gòu)循環(huán)結(jié)構(gòu)控制結(jié)構(gòu)分支結(jié)構(gòu)分支語句:if-elseswitch語句可以直接實現(xiàn)多分支語句。如果條件式結(jié)果等于n,則執(zhí)行第n條分支的處理;如果取值不符合條件,則返回值是NULL。分支結(jié)構(gòu)分支語句:switch分支語句>p<--0.01>{+if(p<0)+print("p<0!")+else+print("p>0!")+}[1]"p<0!">c(1:3,5)[1]1235>for(iinc(1:3,5))+print(switch(i,"A","B","C","D"))

[1]"A"[1]"B"[1]"C"NULL循環(huán)結(jié)構(gòu)控制語句描

述break語句終止循環(huán)語句,執(zhí)行循環(huán)后的下一語句next語句跳過本次循環(huán),執(zhí)行下一次循環(huán)循環(huán)類型描

述for循環(huán)基本的循環(huán)語句,變量的遍歷while循環(huán)類似for語句,滿足條件執(zhí)行循環(huán)體repeat循環(huán)多次執(zhí)行,滿足條件退出循環(huán)循環(huán)結(jié)構(gòu)循環(huán)語句:for>pv<-c(40,55,70,95,82,100,66,90)>m<-1>result<-"">for(iinpv){+if(i<60){+result[m]<-"需要加

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論