R是用于統(tǒng)計(jì)分析,數(shù)據(jù)科學(xué)和報(bào)告的最受歡迎的語言之一。在AAA教育,我們一直在添加R課程(您可以在我們的最新更新中了解更多信息)。要比較R和Python,請(qǐng)?jiān)诖颂幉榭次覀兊姆治?。?a href="http://m.5wd995.cn/data/2725.html" target="_blank">大數(shù)據(jù)分析如何使用R語言構(gòu)建一個(gè)簡單的成績計(jì)算器中,我們將通過構(gòu)建一個(gè)簡單的成績計(jì)算器來教您R的基礎(chǔ)知識(shí)。雖然我們不假定任何R特定知識(shí),但是您應(yīng)該熟悉一般的編程概念。您將學(xué)習(xí)如何:
1)進(jìn)行計(jì)算
2)存儲(chǔ)您的價(jià)值
3)使用特定功能回答問題
大數(shù)據(jù)分析如何使用R語言構(gòu)建一個(gè)簡單的成績計(jì)算器基于我們新發(fā)布的R入門課程的一部分。該課程完全免費(fèi),并包含結(jié)業(yè)證書。去這里開始課程。
計(jì)算成績
假設(shè)您是一名高中生,并且想要計(jì)算平均成績(GPA)。GPA代表您在所有課程中累積的最終分?jǐn)?shù)的平均值。您要參加七個(gè)課程,包括考試,家庭作業(yè)和項(xiàng)目,所有課程的權(quán)重均相等。我們假設(shè)GPA的測量范圍是0-100。在數(shù)學(xué)課上,您92在考試,87家庭作業(yè)和85項(xiàng)目上都獲得了滿分。要計(jì)算平均數(shù)學(xué)成績,我們可以編寫以下內(nèi)容:
我們可以手動(dòng)執(zhí)行諸如計(jì)算平均值之類的任務(wù)。但是,如果我們必須計(jì)算一千名學(xué)生的平均數(shù),那么手工計(jì)算將不會(huì)有效利用我們的時(shí)間。相反,我們將使用編程來要求計(jì)算機(jī)執(zhí)行計(jì)算。
執(zhí)行計(jì)算
我們將從使用R作為基本計(jì)算器開始。我們先前編寫了以下內(nèi)容來計(jì)算數(shù)學(xué)課的最終成績:
整個(gè)代碼行稱為表達(dá)式。我們將表達(dá)式寫在稱為腳本的文本文件中。腳本是我們提供給計(jì)算機(jī)的一組指令。用腳本編寫表達(dá)式后,解釋器將運(yùn)行代碼并在新窗口中顯示表達(dá)式的結(jié)果。讓print()我們以數(shù)學(xué)分?jǐn)?shù)來運(yùn)行語句,作為介于之間的表達(dá)式():
運(yùn)行表達(dá)式,解釋器將在新窗口中輸出以下值:
注意:[1]當(dāng)您深入研究向量時(shí),“ ”將很有意義,但在大數(shù)據(jù)分析如何使用R語言構(gòu)建一個(gè)簡單的成績計(jì)算器的上下文中您無需了解它。在我們顯示的結(jié)果中,計(jì)算和print()語句都具有成對(duì)的匹配括號(hào)。為了更清楚一點(diǎn),這里是相同的計(jì)算:
運(yùn)行此表達(dá)式將產(chǎn)生與將所有內(nèi)容寫在一行上相同的結(jié)果。每個(gè)起始括號(hào)都需要一個(gè)閉合括號(hào)。讓我們嘗試刪除右括號(hào):
如果您的代碼有錯(cuò)誤,解釋器將告訴您有錯(cuò)誤以及該錯(cuò)誤是什么。在我們的例子中,解釋器返回:Error in parse(text = x, srcfile = src): :7:0: unexpected end of input。
文本unexpected end of input表示R解釋器(我們的代碼)的輸入缺少右括號(hào))。您可以嘗試使用上面的表達(dá)式,看看還會(huì)遇到什么其他類型的錯(cuò)誤。
執(zhí)行多次計(jì)算
現(xiàn)在,我們已經(jīng)使用該print()語句看到了結(jié)果,讓我們更深入地研究R解釋器如何運(yùn)行代碼。它:
1)掃描并查找語法錯(cuò)誤。
2)從上到下解釋并運(yùn)行每一行代碼。
3)運(yùn)行最后一行代碼時(shí)退出。
我們已經(jīng)寫了一個(gè)表達(dá)式來計(jì)算您在數(shù)學(xué)課上的最終成績。要了解R代碼的順序解釋方式,我們還要添加一個(gè)表達(dá)式來計(jì)算化學(xué)分?jǐn)?shù)。在化學(xué),你的得分分別為90,81和92。如果我們在單獨(dú)的行上運(yùn)行兩個(gè)計(jì)算,會(huì)發(fā)生什么?
運(yùn)行此代碼,R解釋器將顯示:
如果我們編寫兩行代碼,R是否總是顯示兩行?如果將代碼分成多行怎么辦?
R解釋器仍將顯示相同的值:
注意R如何解釋我們的代碼。每個(gè)print語句在結(jié)果中對(duì)應(yīng)于它自己的一行:
如果我們想計(jì)算寫作和美術(shù)的平均分?jǐn)?shù),可以在隨后的每一行中寫下這些表達(dá)式:
1)寫作:84,95,79
2)藝術(shù):95,86,93
運(yùn)行這些表達(dá)式將顯示以下結(jié)果:
使用算術(shù)運(yùn)算符執(zhí)行計(jì)算
+并且/稱為算術(shù)運(yùn)算符。算術(shù)運(yùn)算符用于執(zhí)行數(shù)學(xué)運(yùn)算。在下圖中,您將找到最常用的運(yùn)算
對(duì)于不熟悉冪運(yùn)算的人,冪運(yùn)算是一種使用**or ^運(yùn)算符將數(shù)字本身乘以特定次數(shù)的方法。如果我們想將值4自身乘以3倍,則使用乘法*運(yùn)算符將如下所示:
雖然使用乘法運(yùn)算符將4乘以3并不太麻煩,但如果我們想將值4乘以20乘以,則使用乘法運(yùn)算符并不是最有效的方法。相反,我們可以將計(jì)算表示為指數(shù):
運(yùn)行4**20將返回:
現(xiàn)在我們了解了算術(shù)運(yùn)算符,讓我們計(jì)算最后三個(gè)課程的最終成績:歷史,音樂和體育:
1)歷史:77,85,90
2)音樂:92、90、91
3)體育:85、88、95
然后,解釋器將顯示:
按操作順序執(zhí)行計(jì)算
現(xiàn)在,我們已經(jīng)了解了如何使用算術(shù)運(yùn)算符來計(jì)算每個(gè)班級(jí)的平均分?jǐn)?shù),讓我們回到數(shù)學(xué)的平均計(jì)算:
如果我們刪除周圍的括號(hào)92 + 87 + 85怎么辦?
這將顯示:
通過刪除周圍的括號(hào)92 + 87 + 85,R解釋器進(jìn)行不同的計(jì)算。使用多個(gè)運(yùn)算符時(shí),有一些規(guī)則可以確定執(zhí)行計(jì)算的順序。確定計(jì)算順序的一種簡單方法是在要首先執(zhí)行的計(jì)算周圍加上括號(hào)。這對(duì)于更復(fù)雜的計(jì)算非常有用,例如:
在這種情況下,我們在92 + 87 + 85 + 67 + 92 + 84和周圍加了一個(gè)括號(hào)77 + 90 + 98。我們要告訴解釋器在執(zhí)行除法之前執(zhí)行加法運(yùn)算符。R解釋器遵循數(shù)學(xué)運(yùn)算規(guī)則的順序。記住這一點(diǎn)的簡單方法是PEMDAS:
1)P arentheses
2)Ë xponent
3)中號(hào) ultiplication或d暫無報(bào)價(jià)
4)甲 ddition或小號(hào) ubtraction
讓我們看一個(gè)沒有括號(hào)的例子。對(duì)于92 + 87 + 85/3,R解釋器將按以下順序計(jì)算表達(dá)式:
如果您沒有在圓括號(hào)中包含括號(hào)92 + 87 + 85,則根據(jù)PEMDAS,R解釋器將首先計(jì)算除法運(yùn)算符?,F(xiàn)在,讓我們將括號(hào)重新添加到表達(dá)式中。對(duì)于(92 + 87 + 85)/3。R解釋器將按差異序列計(jì)算表達(dá)式:
這是每個(gè)班級(jí)的最終成績:
1)數(shù)學(xué):88
2)化學(xué):87.66667
3)寫作:86
4)藝術(shù):91.33333
5)歷史:84
6)音樂:91
7)體育教育:89.33333
讓我們計(jì)算總體平均值,同時(shí)牢記PEMDAS。在相同的表達(dá)式中計(jì)算出總體平均值后,從數(shù)學(xué)分?jǐn)?shù)中減去該總體平均值:
創(chuàng)建評(píng)論
在前面的練習(xí)中,我們使用運(yùn)算符進(jìn)行了多次計(jì)算。稍后,當(dāng)我們編寫數(shù)百行代碼時(shí),組織代碼是一種良好的編程習(xí)慣。我們可以通過插入注釋來組織代碼。注釋是幫助人們(包括您自己)理解代碼的注釋。R解釋器可以識(shí)別注釋,將其視為純文本,并且不會(huì)嘗試執(zhí)行它們。我們可以在代碼中添加兩種主要的注釋類型:
1)內(nèi)嵌評(píng)論
2)單行注釋
內(nèi)嵌注釋內(nèi)嵌注釋在我們要注釋或向特定語句添加更多細(xì)節(jié)時(shí)很有用。要在語句末尾添加內(nèi)聯(lián)注釋,請(qǐng)從井號(hào)(#)開始,然后添加注釋:
盡管我們不需要在井號(hào)(#)后面添加空格,但是這被認(rèn)為是不錯(cuò)的樣式,它使我們的注釋更整潔,更易于閱讀。單行注釋單行注釋跨越整個(gè)行,在我們要將代碼分為幾部分時(shí)很有用。要指定我們希望將文本行作為注釋,請(qǐng)以井號(hào)(#)開始:
讓我們在代碼中添加注釋!
給變量賦值
使用R進(jìn)行簡單的計(jì)算非常有用。但是,一種更可靠的方法是存儲(chǔ)這些值以供以后使用。這種存儲(chǔ)值的過程稱為變量賦值。R中的變量就像可以保存值的命名存儲(chǔ)單元。分配變量的過程需要兩個(gè)步驟:
1)命名變量。
2)使用將值分配給名稱<-。
命名變量時(shí),必須遵循一些規(guī)則:
1)變量名稱由字母,數(shù)字,點(diǎn)或下劃線組成。
2)我們可以以字母或點(diǎn)開頭的變量。如果是點(diǎn),那么我們不能在其后加上數(shù)字。
3)我們不能以數(shù)字開頭的變量。
4)不允許使用特殊字符。
有關(guān)更多詳細(xì)信息,請(qǐng)參見下表,詳細(xì)列出了允許使用哪些變量名稱和不允許使用哪些變量名稱:
讓我們返回?cái)?shù)學(xué)分?jǐn)?shù)計(jì)算:(92 + 87 + 85)/3,該計(jì)算的結(jié)果為88。要存儲(chǔ)88在名為的變量中math,讓我們編寫以下表達(dá)式:
然后,如果我們嘗試進(jìn)行print()數(shù)學(xué)運(yùn)算,像這樣:
這將顯示: [1] 88
變量不僅可以保存我們的計(jì)算結(jié)果,還可以分配表達(dá)式的值:
然后,如果我們嘗試打印數(shù)學(xué),像這樣:
這將顯示與我們原始計(jì)算相同的結(jié)果 [1] 88
我們已經(jīng)將數(shù)學(xué)成績存儲(chǔ)在一個(gè)變量中。提醒一下,以下是課程和成績:
1)化學(xué):87.66667
2)寫作:86
3)藝術(shù):91.33333
4)歷史:84
5)音樂:91
6)體育教育:89.33333
讓我們將其他分?jǐn)?shù)存儲(chǔ)在變量中。
使用變量執(zhí)行計(jì)算
現(xiàn)在我們已經(jīng)將每個(gè)班級(jí)的成績存儲(chǔ)在變量中,我們可以使用這些變量來找到平均成績。讓我們看看我們的數(shù)學(xué)和化學(xué)分?jǐn)?shù):
在執(zhí)行計(jì)算時(shí),變量和值被視為相同。使用math和chemistry變量,88 + 87.66667與相同math + chemistry。使用變量執(zhí)行計(jì)算時(shí),PEMDAS規(guī)則仍然適用。如果我們想看看您在數(shù)學(xué)方面比化學(xué)方面的成績要好得多,我們可以使用減法-算術(shù)運(yùn)算符來找出差異:
顯示:
如果我們想找到數(shù)學(xué)和化學(xué)的平均成績,我們可以使用+,/,()對(duì)兩個(gè)變量運(yùn)營商:
顯示:
完成這些計(jì)算后,我們還可以將這些表達(dá)式的結(jié)果存儲(chǔ)在變量中。如果我們想將數(shù)學(xué)和化學(xué)的平均值存儲(chǔ)在一個(gè)名為的變量中average,它將看起來像這樣:
顯示平均值將返回相同的值87.83334。
讓我們使用以下變量來計(jì)算平均成績:
1)math <- 88
2)chemistry <- 87.66667
3)writing <- 86
4)art <- 91.33333
5)history <- 84
6)music <- 91
7)physical_education <- 89.33333
然后,讓我們gpa從歷史記錄中減去您的歷史記錄,看看歷史記錄是否低于平均值。將此差異存儲(chǔ)在中history_difference。
創(chuàng)建向量
在前面的示例中,使用變量計(jì)算平均成績非常有用。但是,在數(shù)據(jù)科學(xué)中,我們經(jīng)常處理數(shù)千個(gè)數(shù)據(jù)點(diǎn)。如果您獲得每個(gè)班級(jí)每個(gè)家庭作業(yè),考試或項(xiàng)目的分?jǐn)?shù),則我們的數(shù)據(jù)集將會(huì)很大?;氐轿覀兊臄?shù)學(xué),化學(xué)示例,讓我們看一下當(dāng)前的變量:
而不是店兩個(gè)變量這兩個(gè)值,我們需要一個(gè)可以存儲(chǔ)在存儲(chǔ)單元的多個(gè)值。在R中,我們可以使用向量存儲(chǔ)這些值。向量是可以存儲(chǔ)值序列的存儲(chǔ)容器。然后,我們可以使用變量命名向量。像這樣:
要?jiǎng)?chuàng)建矢量,您將使用c()。在R中,c()稱為函數(shù)。與該print()語句類似,該c()函數(shù)接受多個(gè)輸入并將這些值存儲(chǔ)在一個(gè)位置。該c()函數(shù)不對(duì)值執(zhí)行任何算術(shù)運(yùn)算,而僅存儲(chǔ)這些值。您可以在此處閱讀有關(guān)該c()功能的更多信息。以下是創(chuàng)建矢量的步驟:
1)確定要存儲(chǔ)在向量中的值,并將這些值放置在c()函數(shù)中。使用逗號(hào)分隔這些值,。
2)使用將向量分配給您選擇的名稱<-。
讓我們創(chuàng)建一個(gè)包含數(shù)學(xué)和化學(xué)分?jǐn)?shù)的向量。數(shù)學(xué)分?jǐn)?shù)是88,化學(xué)分?jǐn)?shù)是87.66667。
我們還可以使用您的變量名創(chuàng)建向量:
如果要這樣做print(math_chemistry)
,它將如下所示:
另一方面,如果我們嘗試存儲(chǔ)值序列,如下所示:
R解釋器將僅嘗試將88分配給,math_chemistry但在88之后將無法解釋逗號(hào):Error: unexpected ',' in "math_chemistry <- 88,"
讓我們使用以下變量將最終分?jǐn)?shù)存儲(chǔ)在向量中:
計(jì)算平均值
現(xiàn)在我們已經(jīng)將您的成績存儲(chǔ)在矢量中,我們可以計(jì)算平均成績了。在上一個(gè)練習(xí)中,您使用算術(shù)運(yùn)算符來計(jì)算平均成績:
盡管此解決方案有效,但該解決方案不可擴(kuò)展。現(xiàn)在,您已經(jīng)創(chuàng)建了一個(gè)向量,我們有了一種更簡單的方法來計(jì)算平均成績。要使用向量計(jì)算平均成績,請(qǐng)使用mean()函數(shù)。該mean()函數(shù)將獲取一個(gè)輸入(向量)并計(jì)算該輸入的平均值。然后,解釋器將顯示結(jié)果。讓我們將mean()函數(shù)應(yīng)用于math_chemistry向量:
這將返回:
讓我們將該mean()函數(shù)應(yīng)用于最終成績矢量!
讓我們將該mean()函數(shù)應(yīng)用于最終成績矢量!
對(duì)向量執(zhí)行操作
以前,您是使用mean()函數(shù)和向量計(jì)算最終成績的。在數(shù)據(jù)科學(xué)中,您總是可以使用數(shù)據(jù)回答多個(gè)問題。讓我們更深入地研究final_grades向量,然后再問幾個(gè)問題:
1)最高分?jǐn)?shù)是多少?
2)最低分?jǐn)?shù)是多少?
3)你選了幾節(jié)課?
要回答這些問題,您將需要一些其他功能:
1)min():找到向量中的最小值
2)max():在向量中找到最大值
3)length():查找向量擁有的值的總數(shù)
4)sum()::獲取向量中所有值的總和(注意:本教程中將不使用。)
您可以應(yīng)用此功能,類似于您應(yīng)用
mean()功能。為了在math_chemistry向量中找到最大分?jǐn)?shù),我們將max()函數(shù)應(yīng)用于該向量:
顯示: [1] 88
讓我們再回答幾個(gè)有關(guān)您成績的問題!
1)您在哪個(gè)班上得分最高?使用max()。
2)您在哪一門課程中得分最低?使用min()。
3)你選了幾節(jié)課?使用length()。
下一步
如果您想了解更多信息,大數(shù)據(jù)分析如何使用R語言構(gòu)建一個(gè)簡單的成績計(jì)算器基于我們的R基礎(chǔ)知識(shí)課程,該課程是我們R軌道數(shù)據(jù)分析師的一部分?;?a href="http://m.5wd995.cn/data/2725.html" target="_blank">大數(shù)據(jù)分析如何使用R語言構(gòu)建一個(gè)簡單的成績計(jì)算器中的概念,您將學(xué)習(xí):
1)操作向量的更復(fù)雜方法:
a)索引到向量
b)過濾出向量中的不同值
c)向量的不同行為
2)使用矩陣提出大學(xué)建議
a)創(chuàng)建自己的矩陣
b)切片和重新組織矩陣
c)排序矩陣
3)使用數(shù)據(jù)框分析大學(xué)畢業(yè)生數(shù)據(jù)
a)數(shù)據(jù)框中包含的不同數(shù)據(jù)類型
b)選擇并細(xì)分?jǐn)?shù)據(jù)框中的特定值
c)將條件添加到數(shù)據(jù)框選擇中
4)使用列表存儲(chǔ)各種值
a)索引到列表
b)從列表中添加和減去值
c)合并清單