
來源 | 伯樂在線
我妹妹正在念大四,主修社會(huì)學(xué)。她剛剛簽了下個(gè)學(xué)期一份不錯(cuò)的分析員工作,對方告訴她工作中要用到 R 編程語言。她讓我在寒假時(shí)教教她,我欣然同意了。還有什么比這更好的方式來消磨明尼蘇達(dá)的冬天呢?[注1]
問題是:在原定教她的那天,我們倆都有空的時(shí)間只有一個(gè)小時(shí)。哎呀!
不過我還是接受了這個(gè)挑戰(zhàn),用一個(gè)小時(shí)向我的社會(huì)學(xué)家妹妹介紹R。下面就是我所做的事情。我沒有預(yù)先做功課,而且肯定犯了些錯(cuò)誤,忽視了核心思想,糾纏于細(xì)枝末節(jié)。但妹妹給我的反饋是非常好(我確實(shí)對其他人的“一小時(shí)學(xué)會(huì)R”理念非常感興趣)
(1)下載R和RStudio
我對RStudio的印象不錯(cuò),對于初學(xué)者來說,它既方便又很有幫助,對專業(yè)人士也很有用。尤其對于初學(xué)者:鼠標(biāo)指向-點(diǎn)擊式(point-and-click)的選項(xiàng)非常棒,工作區(qū)面板對于建立起對R環(huán)境的概念也非常有用。我甚至都不用再花精力向我妹妹介紹R默認(rèn)的集成開發(fā)環(huán)境——我馬上就讓她下載了RStudio,不過你仍然需要下載普通版的R。下載之后,我意識到r-project.org網(wǎng)站真應(yīng)該在設(shè)計(jì)上進(jìn)行大修整,因?yàn)椋?a)它不夠漂亮(b)如果你不知道什么是“CRAN鏡像”,下載R將是一件容易把人搞糊涂的事。
(2)控制臺(tái)和腳本
準(zhǔn)備好之后,我們做的第一件事就是在控制臺(tái)中鍵入如下兩行代碼:
這并非純粹的“Hello World”,但它闡明了一些概念,比如”賦值”、”變量”和”求值”[注2]。
接著,我讓妹妹在一個(gè)R腳本文件中保存了上面那兩行代碼(我認(rèn)為,在初學(xué)者開始使用一門語言時(shí)就教會(huì)他們?nèi)绾握_地把代碼保存在腳本文件中是非常重要的)。然后,我教她怎么用Cmd-Enter組合鍵(譯者注:這是Mac OS的鍵位。在PC中,對應(yīng)的組合鍵是Ctrl+Enter)在控制臺(tái)中執(zhí)行代碼。
在解釋這些內(nèi)容的過程中,我意識到”控制臺(tái)”和”腳本”這類術(shù)語比較晦澀,所以我盡可能給出它們的明確的定義。我也不得不小心地使用那些含義確切的詞而非”REPL”或”prompt”這類詞匯
(3)注釋
(4)圖形
腳本、注釋和控制臺(tái)可能有點(diǎn)兒枯燥,所以到了這一步,該是從圖形中尋找點(diǎn)兒樂趣的時(shí)候了!這是我們繪制的一張圖:
教我妹妹理解這段代碼涉及解釋什么是函數(shù)(因?yàn)閞norm和hist都是函數(shù))、什么是函數(shù)的實(shí)參,以及為什么你可以通過名字引用實(shí)參卻不一定非得這樣做。
我還教她怎么保存一個(gè)圖形——借助圖形窗口中方便的“Export”按鈕,在RStudio中保存圖形非常容易。
(5)獲得幫助
我認(rèn)為,“獲取幫助”是這類快速入門過程中需要掌握的最重要的概念。顯然你不可能在一個(gè)小時(shí)之內(nèi)學(xué)會(huì)一切,所以,你真正需要的是當(dāng)你用到時(shí)可以查找到相應(yīng)信息的工具。下面是我介紹的語法:
考慮到查函數(shù)文檔對非程序員來說不太容易,這本來或許不是一個(gè)正確的策略。我考慮過強(qiáng)調(diào)google技巧的重要性(我在研究生院學(xué)到的最有用的東西),或者介紹StackOverFlow和R-help,但最后還是決定講解官方的文檔系統(tǒng)。”在R中我該怎么做X這件事”是初學(xué)者最常見的問題之一,我認(rèn)為這個(gè)問題的答案可能應(yīng)該是”使用函數(shù)Y( )”——所以重要的是能夠搞清楚如何使用函數(shù)Y( )。
在我看來,初學(xué)者最常見的另一個(gè)問題是”我遇到了出錯(cuò)信息Z,怎么修正它?”。為解決這個(gè)問題,我演示一些常見的錯(cuò)誤(對象未找到,意外的<X>常量,等等)并解釋了它們的含義。
(6)數(shù)據(jù)類型
查看幫助文檔讓我想起文檔中經(jīng)常會(huì)提及某個(gè)函數(shù)的實(shí)參必須是某個(gè)特定的類型,因此我們或許應(yīng)該討論一下數(shù)據(jù)類型。我介紹了:
向量
矩陣
數(shù)據(jù)框(dataframe)
就這樣,我們借助實(shí)例討論了一些數(shù)據(jù)類型,并順帶著學(xué)習(xí)了其他一些重要的內(nèi)容,像怎么確定向量、什么是工作目錄,以及怎樣讀入數(shù)據(jù)文件。
(7)探索性數(shù)據(jù)分析
一旦你讀入了一個(gè)數(shù)據(jù)集,事情就開始變得有趣了。我們從中學(xué)習(xí)了一大堆東西,像怎么做基本的表格、遇到缺失數(shù)據(jù)如何處理,以及怎么擬合一個(gè)簡單的線性模型。這部分的內(nèi)容相當(dāng)有趣,以至于我妹妹開始主導(dǎo)學(xué)習(xí)過程了:不再是我說“我要教你如何做什么”,而是她主動(dòng)問“嗯,我們能畫一個(gè)散點(diǎn)圖嗎?”或“你覺得我們可以把最優(yōu)擬合直線放到那個(gè)圖上嗎?”我真為此而感到高興——我希望這意味著她已全身心投入并樂在其中。
我們還進(jìn)一步學(xué)習(xí)了圖形,像怎么作出好的直方圖,以及怎么在回歸直線上疊加散點(diǎn)圖。
1 hist(wages$wage, xlab = "hourly wage", main = "wages in our dataset", col = "purple")
2 plot(wages$age, wages$workyr, xlab = "age", ylab="years worked", main = "age vs. years worked")
3 abline(lm(wages$workyr ~ wages$age), col="red", lwd = 2)
好了,時(shí)間到。
我遺漏了些什么?哪些事能做得更好?我事后想到的有:
用[]取子集. 這是個(gè)關(guān)鍵知識點(diǎn)。它可以應(yīng)用于我所介紹的所有數(shù)據(jù)類型,而且極為有用。我真希望當(dāng)時(shí)有時(shí)間讓我妹妹做一個(gè),比如只包含女性的工資直方圖
編程相關(guān)的東西:循環(huán)、if語句、用戶自定義函數(shù),等等。不過我覺得不教這些東西也沒問題——考慮到受眾,我是把R當(dāng)作一個(gè)數(shù)據(jù)分析環(huán)境而非一種編程語言來教授。
保存.rda文件和/或工作區(qū)
安裝和載入包
其他數(shù)據(jù)類(比如列表)
其他(更好的?)幫助資源/提示/技巧
最后一點(diǎn)感想
總的來說,在一小時(shí)內(nèi)介紹R讓我收獲了樂趣,而且我認(rèn)為(希望?)我妹妹也是如此。臨別時(shí)我又給了她一些資料:這個(gè),這個(gè)和這個(gè),這些資料我都不是非常熟悉——但我知道,要想能夠用R分析實(shí)際數(shù)據(jù),所需的時(shí)間遠(yuǎn)大于在我這兒的一個(gè)小時(shí)。我相信我已經(jīng)覆蓋了大部分基礎(chǔ)知識,我妹妹也覺得這對她非常有幫助。我很樂意聽各位來談?wù)勀闶侨绾螒?yīng)對”一小時(shí)內(nèi)向非程序員介紹R”這個(gè)挑戰(zhàn)的。
腳注
注1. 即便對明尼蘇達(dá)來說,天氣也真的太冷了。溫度已在華氏0度(譯者注:攝氏-17度)左右徘徊了一個(gè)月之久。星期一的最高溫度是華氏-12度(譯者注:攝氏-24度)
注2.你可能注意到了,我用“=”來賦值,而且把這個(gè)習(xí)慣傳給了我妹妹。我考慮過這個(gè)問題并堅(jiān)持這一用法,“<-”要多敲鍵盤,我發(fā)現(xiàn)它唯一有用的地方只是當(dāng)我在system.time函數(shù)調(diào)用內(nèi)進(jìn)行賦值。
end
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
LSTM 模型輸入長度選擇技巧:提升序列建模效能的關(guān)鍵? 在循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)家族中,長短期記憶網(wǎng)絡(luò)(LSTM)憑借其解決長序列 ...
2025-07-11CDA 數(shù)據(jù)分析師報(bào)考條件詳解與準(zhǔn)備指南? ? 在數(shù)據(jù)驅(qū)動(dòng)決策的時(shí)代浪潮下,CDA 數(shù)據(jù)分析師認(rèn)證愈發(fā)受到矚目,成為眾多有志投身數(shù) ...
2025-07-11數(shù)據(jù)透視表中兩列相乘合計(jì)的實(shí)用指南? 在數(shù)據(jù)分析的日常工作中,數(shù)據(jù)透視表憑借其強(qiáng)大的數(shù)據(jù)匯總和分析功能,成為了 Excel 用戶 ...
2025-07-11尊敬的考生: 您好! 我們誠摯通知您,CDA Level I和 Level II考試大綱將于 2025年7月25日 實(shí)施重大更新。 此次更新旨在確保認(rèn) ...
2025-07-10BI 大數(shù)據(jù)分析師:連接數(shù)據(jù)與業(yè)務(wù)的價(jià)值轉(zhuǎn)化者? ? 在大數(shù)據(jù)與商業(yè)智能(Business Intelligence,簡稱 BI)深度融合的時(shí)代,BI ...
2025-07-10SQL 在預(yù)測分析中的應(yīng)用:從數(shù)據(jù)查詢到趨勢預(yù)判? ? 在數(shù)據(jù)驅(qū)動(dòng)決策的時(shí)代,預(yù)測分析作為挖掘數(shù)據(jù)潛在價(jià)值的核心手段,正被廣泛 ...
2025-07-10數(shù)據(jù)查詢結(jié)束后:分析師的收尾工作與價(jià)值深化? ? 在數(shù)據(jù)分析的全流程中,“query end”(查詢結(jié)束)并非工作的終點(diǎn),而是將數(shù) ...
2025-07-10CDA 數(shù)據(jù)分析師考試:從報(bào)考到取證的全攻略? 在數(shù)字經(jīng)濟(jì)蓬勃發(fā)展的今天,數(shù)據(jù)分析師已成為各行業(yè)爭搶的核心人才,而 CDA(Certi ...
2025-07-09【CDA干貨】單樣本趨勢性檢驗(yàn):捕捉數(shù)據(jù)背后的時(shí)間軌跡? 在數(shù)據(jù)分析的版圖中,單樣本趨勢性檢驗(yàn)如同一位耐心的偵探,專注于從單 ...
2025-07-09year_month數(shù)據(jù)類型:時(shí)間維度的精準(zhǔn)切片? ? 在數(shù)據(jù)的世界里,時(shí)間是最不可或缺的維度之一,而year_month數(shù)據(jù)類型就像一把精準(zhǔn) ...
2025-07-09CDA 備考干貨:Python 在數(shù)據(jù)分析中的核心應(yīng)用與實(shí)戰(zhàn)技巧? ? 在 CDA 數(shù)據(jù)分析師認(rèn)證考試中,Python 作為數(shù)據(jù)處理與分析的核心 ...
2025-07-08SPSS 中的 Mann-Kendall 檢驗(yàn):數(shù)據(jù)趨勢與突變分析的有力工具? ? ? 在數(shù)據(jù)分析的廣袤領(lǐng)域中,準(zhǔn)確捕捉數(shù)據(jù)的趨勢變化以及識別 ...
2025-07-08備戰(zhàn) CDA 數(shù)據(jù)分析師考試:需要多久?如何規(guī)劃? CDA(Certified Data Analyst)數(shù)據(jù)分析師認(rèn)證作為國內(nèi)權(quán)威的數(shù)據(jù)分析能力認(rèn)證 ...
2025-07-08LSTM 輸出不確定的成因、影響與應(yīng)對策略? 長短期記憶網(wǎng)絡(luò)(LSTM)作為循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的一種變體,憑借獨(dú)特的門控機(jī)制,在 ...
2025-07-07統(tǒng)計(jì)學(xué)方法在市場調(diào)研數(shù)據(jù)中的深度應(yīng)用? 市場調(diào)研是企業(yè)洞察市場動(dòng)態(tài)、了解消費(fèi)者需求的重要途徑,而統(tǒng)計(jì)學(xué)方法則是市場調(diào)研數(shù) ...
2025-07-07CDA數(shù)據(jù)分析師證書考試全攻略? 在數(shù)字化浪潮席卷全球的當(dāng)下,數(shù)據(jù)已成為企業(yè)決策、行業(yè)發(fā)展的核心驅(qū)動(dòng)力,數(shù)據(jù)分析師也因此成為 ...
2025-07-07剖析 CDA 數(shù)據(jù)分析師考試題型:解鎖高效備考與答題策略? CDA(Certified Data Analyst)數(shù)據(jù)分析師考試作為衡量數(shù)據(jù)專業(yè)能力的 ...
2025-07-04SQL Server 字符串截取轉(zhuǎn)日期:解鎖數(shù)據(jù)處理的關(guān)鍵技能? 在數(shù)據(jù)處理與分析工作中,數(shù)據(jù)格式的規(guī)范性是保證后續(xù)分析準(zhǔn)確性的基礎(chǔ) ...
2025-07-04CDA 數(shù)據(jù)分析師視角:從數(shù)據(jù)迷霧中探尋商業(yè)真相? 在數(shù)字化浪潮席卷全球的今天,數(shù)據(jù)已成為企業(yè)決策的核心驅(qū)動(dòng)力,CDA(Certifie ...
2025-07-04CDA 數(shù)據(jù)分析師:開啟數(shù)據(jù)職業(yè)發(fā)展新征程? ? 在數(shù)據(jù)成為核心生產(chǎn)要素的今天,數(shù)據(jù)分析師的職業(yè)價(jià)值愈發(fā)凸顯。CDA(Certified D ...
2025-07-03