R學習經驗點滴談
導語
在本篇介紹中,呂小康老師以一如既往的幽默文風介紹了自己學習R的經歷,後面將陸續推送呂老師團隊的R學習系列,篇幅所限,這裡只能推送部分章節,更多精彩內容請移步圍觀https://xkdog.github.io/,歡迎大家的繼續關注!
R學習經驗點滴談
01-寫在伊始
我自己於2011年左右自學R,中間放棄了一陣,後來又強迫自己重新開始。慢慢地也在碩士和本科中開設相關課程,多少積累了一些學習經驗和教學經驗。至於這些經驗是否具有內外部效度,我也遵循某央視節目的風格:「只管大膽胡說,決不小心求證」。這裡不妨與同行者言之一二,歡迎猛烈拍磚。因為此系列設計之初就確定了正經+不正經的雙重精分人設,這裡打算專門負責不正經的部分——所以以下行文的非線性邏輯若讓您感到苦惱,不妨口吐白沫呼嘯而過。
這裡先集中講三個問題。
1. 怎樣才能學好R?
總有學生問我:老師,如何才能學好R?我總是感到很茫然。第一,我覺得自己就沒學好,不知道好的界限在哪裡;第二,這種開放性問題(以How、Why等開頭的問題幾乎都屬於開放性問題)的人,有點不適合我這種被科研方法論操作化過的腦袋來回答。我喜歡回答的問題是:老師……(此處給出一個具體例子和若干行代碼),我的水平算學好了嗎?然後我再回答說:好的,同學。首先,請給出「好」的操作化標準……所以也許我只能說:任何跟人你講「三天一星期十天掌握R語言」、「讓所有人都愛上統計學統計軟體」的說法都是騙人的。說這種話的人,可能高估了自己的教學能力和受眾的理解能力,也可能低估了統計和統計軟體的深度和複雜性;當然,也許他沒有高估也沒有低估,只是一種營銷策略(標題黨)而已。比如李白說「飛流直下三千尺」,你的小學老師肯定告訴過你,這種文學手法叫「誇張」。所以,不要看了某些網上的誘惑小短文後就幻想靠某種武功秘籍能夠在R學習之路中迅速登堂入室。這跟靠朋友圈美圖找相親對象的結果基本上是雷同的:始於希望,繼於失望,終於絕望,三望到頭。
對於這個問題,我想用一句「詩」來作一個粗略回答。我初高中的時候(20世紀90年代中後期),有一個「詩人」曾經很火,叫汪國真。現在可以很大方的承認,我是手抄過他的詩句的。其中有一句,現在依然擁有一定的流行度,我印象也深:「既然選擇了遠方,便只顧風雨兼程」。
標題:我覺得8090年代還是有文化的時代,現在的什麼freestyle簡直too young too simple
既然(錯)上了道,就慢慢走慢慢聊,暫且把結果如何放一邊,你很少能欣賞到「寶馬雕車香滿路。鳳簫聲動,玉壺光轉,一夜魚龍舞」的美景。正是這時候更需要美好一點的人生觀,這樣才能體驗到「驀然回首,那人卻在,燈火闌珊處」的高峰體驗。當然,更大的可能是挺不到那時候就放棄了。我覺得也沒有什麼不好。讀書人的事么,不能以成敗論英雄。先學一學,探索適合不適合自己,真不適合也就不必強求了。反正需要的時候,你總能找得著專門進行數據處理的人,給他們多口飯吃也挺好的。若真是要學,可能確實需要持之以恆的心態和一定量的時間投入。羅馬不是一天建成的。真理總是這麼平淡,只是你願不願意堅守。
那麼,究竟有沒有一句話能概括學好R或Python類開源統計(當然不僅僅局限於統計)軟體的不二法門?我想了想,應該還是有的,那就是:
卸載所有(很可能是盜版的)商業統計軟體。
這就引出如下的第二個常見問題。
2. 我會SPSS/Stata,還需要學R嗎?
對此先反問一個問題:你用的是正版的SPSSS/Stata嗎?回答「是」的,愛用哪個是哪個,有錢,任性。請略過此問。
估計多數老師/同學的回答是「否」。所以有必要再啰嗦幾句。
我是堅定的盜版商業統計軟體的批判者。問君對SPSS之流能有幾多仇?恰似一江春水向東流。你不妨理解為,這是因為自己大學時沒有學好這個軟體(我依稀記得大一《計算機基礎》考了63分成績的自己,大三時被三張1.44Mb軟盤承載的Dos版SPSS支配的恐懼),所以現在要拚命打擊報復。這是西方社會心理學中挫折攻擊假說的典型範例,也就是本土社會心理學中說的:小人之心。
標題:你可能找不到更恰當地,能夠直觀解釋什麼是1.44M, 3.5寸軟盤的圖片了……
現在,我長大了。作為一名曾經用過諸多盜版軟體的大學教師,我不要臉地呼籲:應當劃定時間線,比如XX大之後,在公共課堂教學中使用盜版軟體進行教學示範的教師應當禁止其從事相關課程的教學。作為知識的生產者和傳播者,如果自己就不能尊重知識產權,如何能讓他們尊重自己所生產或傳遞的知識?這麼執行的壓力應當不在教師,而在「上面」有關部門吧:趕緊花錢整個軟體正版化平台,別讓我輩總在盜版軟體的淫威下惶惶不可終日。錢從何來?呵呵呵呵,請諮詢各「雙一流」相關部門。
以上說法不適用於有實力購買正版商業軟體的院校。
3. 我寫的命令跟你一樣,怎麼還是運行
不了?
首先,我只提供Windows系統下的操作說明,Mac系統宜另請高明,因為我是堅定的Windows黨。問:緣何不是果粉?曰:買不起。
通常有以下情況,會頻繁造成R(尤其是RStudio)使用過程中各種不可遏制的挫敗感
(1)Windows賬戶名、文件夾名、文件名、數據文件中的變數名、數據文件中的取值標籤等存在(非UTF8編碼的)漢字。是的,你應當保證從賬戶名到文件名中的所有路徑都是英文,數據文件盡量用英文表示變數名,不要給數據取值加標籤,在codebook中標誌標籤足夠了,愛用哪個語言用哪個語言。否則,容易造成RStudio打不開,或打開後一片空白;數據無法讀入或讀入後出現亂碼;等等疑難雜症,幾乎都與Windows的漢字編碼有關。即使如此,我仍未拋棄Windows。理論解釋:真愛。
衍生問題1:老師,我英語不好怎麼辦?
答:學。
衍生問題2:老師,我的數據本來就是sav格式的,裡面好多中文變數……
答:扔。
或者找高手——別找我,我不是。
(2)確定代碼的大小寫無誤,R的命令是大小寫敏感(case sensitive)的,大寫字母和小定字母表示實質不同的對象或命令。命令中不能出現中文符號,最常見的就是命令中出現中文逗號或中文引號。
(3)設定路徑時的斜杠不是反斜杠而是正斜杠,讀取文件時應當把後綴名加上。
以下是正確的寫法:
setwd(「C:/xkdog/courses/r」)
以下是錯誤的寫法:
setwd(「C:xkdogcourses
」)
以下是正確寫法(假定文件已在當前工作路徑中):
read.csv(「mydata.csv」)
以下是錯誤寫法:
read.csv(「mydata」)
這些習慣主要是Windows系統養成的,不賴大家。習慣就好。


TAG:定量群學 |