Hadley Wickham:一個改變了R的人
Hadley Wickham 是 RStudio 的***科學家以及 Rice University 統(tǒng)計系的助理教授。他是著名圖形可視化軟件包 ggplot2 的開發(fā)者,以及其他許多被廣泛使用的軟件包的作者,代表作品如 plyr、reshape2 等。
HadleyObama
通過數(shù)據(jù)從根本上了解世界真的是一件非常,非??岬氖虑?。
~多產(chǎn)的R開發(fā)者Hadley Wickham
如果你不花很多時間在開源統(tǒng)計編程語言R中寫代碼的話,他的名字你可能并不熟悉——但統(tǒng)計學家Hadley Wickham用他自己的話說是那種“以書***出名”的人。他是那種在統(tǒng)計會議上人們排隊要和他拍照,問他要簽名的人,并且人們對他充滿了尊敬。他也承認“這種現(xiàn)象實在太奇特了。因為寫R程序而出名?這太瘋狂了。”
R 是一種為數(shù)據(jù)分析而設(shè)計的編程語言,Wickham正是因為成為了卓越的R包開發(fā)者而贏得了他的名聲。R包是用于簡化諸如整合和繪制數(shù)據(jù)等常見任務(wù)代碼的編程工具。Wickham已經(jīng)幫助了數(shù)以萬計的人,使他們的工作變得更有效率,這使得大家都很感激他,甚至為之而欣喜若狂。他開發(fā)的R包的用戶包括眾科技巨頭,例如Google,F(xiàn)acebook和Twitter,新聞巨擘諸如紐約時報和 FiveThirtyEight,政府機構(gòu)諸如食品與藥品管理局(FDA)以及美國禁毒署(DEA)等。
誠然,他是書***中的巨人。
Wickham出生在新西蘭漢密爾頓的一個統(tǒng)計學世家。他父親Brian Wickham在康奈爾大學獲得動物繁殖專業(yè)的博士,該學科大量使用統(tǒng)計學;而他姐姐則擁有加州大學伯克利分校的統(tǒng)計學博士學位。
如果這個世界上真有數(shù)據(jù)結(jié)構(gòu)神童,那么Wickham可能就是其中之一。談起他早年的經(jīng)歷,他頗為自豪:
“我的***份工作,那時我才15歲,就是開發(fā)一個微軟Access數(shù)據(jù)庫。我覺得這事兒挺有意思的。我為數(shù)據(jù)庫編寫了文檔,他們至今都在用這個數(shù)據(jù)庫。”
從***份工作開始,Wickham就開始反思存儲和操縱數(shù)據(jù)是否存在一種更好的辦法。“對于找到更好的解決之道,我一直頗為自信”,他解釋說,“并且這個辦法可以造福他人。”雖然彼時的他依然在懵懂中,但正在那時他“內(nèi)化”了第三范式(Third Normal Form)的概念,這將在他未來的工作中扮演重要的角色。第三范式的本質(zhì)是一種降低數(shù)據(jù)冗余且保證數(shù)據(jù)一致性的數(shù)據(jù)構(gòu)架方法。Wickham把這種數(shù)據(jù)叫做“干凈”(tidy)數(shù)據(jù),而他的工具推廣了并依賴于這種數(shù)據(jù)結(jié)構(gòu)。
R的標志,該語言的革命性演化部分歸功于Hadley Wickham
Wickham***次接觸R語言是在新西蘭奧克蘭大學攻讀統(tǒng)計學本科學位時。他將其描述為“一種理解數(shù)據(jù)的程序語言”。比肩SQL和Python,R是最受數(shù)據(jù)科學家歡迎的語言之一。
和Wickham一樣,這個將被他革新的語言也來自新西蘭。1993年,奧克蘭大學的統(tǒng)計學家Ross Ihaka和Robert Gentleman創(chuàng)制了R。由于該語言是為數(shù)據(jù)分析量身定制,并且某些地方它與眾不同(例如數(shù)據(jù)結(jié)構(gòu)的索引方式以及數(shù)據(jù)強制存儲于內(nèi)存中),因此熟悉其他語言的程序員往往覺得R非常奇怪。在編寫過Java,VBA和PHP后,Wickham發(fā)現(xiàn)R截然不同:“(許多程序員)接觸R會后覺得它不倫不類,但我卻不這么想,我覺得它可有意思了。”
從在愛荷華州立大學攻讀博士學位起,Wickham就開始開發(fā)R工具包。用Wickham的話說,編寫一個工具包是“編寫一些幫助人們解決問題的代碼,然后編寫代碼文檔來幫助人們理解這玩意該怎么用”。作為課程項目的一部分,他編寫的***個工具包旨在實現(xiàn)生化信息的可視化。盡管這個包從未面世,他卻堅定了分享個人工具的念頭。
在2005年,Wickham發(fā)布了reshape工具包,這是他一連串“網(wǎng)紅”工具包的開始。自發(fā)布以來,這個工具包已經(jīng)被下載了幾十萬次。reshape希望讓數(shù)據(jù)的聚合和操縱變得不那么“枯燥和煩人”。對于非程序員而言,簡化數(shù)據(jù)變形過程可能不是什么事兒,但是對于數(shù)據(jù)科學家和統(tǒng)計學家而言,這往往是他們工作中最費時的事兒。
Wickham顯然被reshape的成功所鼓舞。他開發(fā)這個工具包正是因為他認為他可以比前人做的更好。盡管不愛自夸,他卻絕不缺乏自信。“我堅信我知道解決問題的正確方法”,他反復(fù)強調(diào),“這種念頭是好是壞就不知道了。”
在reshape和其他幾個工具包大受歡迎的同時,Wickham對于統(tǒng)計學的憧憬卻逐漸幻滅。在攻讀PhD的過程中,他注意到“學校里教的東西和人們理解數(shù)據(jù)真正需要的東西根本不沾邊”。與那些專注于高深莫測的中心極限定理變體的統(tǒng)計學家不同,Wickham致力于讓普羅大眾能夠更容易地上手數(shù)據(jù)分析。他闡述說:
“肯定會有象牙塔的統(tǒng)計學家否認我所做的工作是統(tǒng)計學,但是我認為他們錯了。我所做的工作正是回歸到統(tǒng)計學的根源。存在數(shù)據(jù)科學這一學科這件事本身就說明正統(tǒng)統(tǒng)計學存在巨大缺陷。對我而言,這涉及到什么是統(tǒng)計:統(tǒng)計即是通過建模和可視化從數(shù)據(jù)中獲得洞見。數(shù)據(jù)清洗和操縱是個臟活累活,而正統(tǒng)統(tǒng)計學拍拍屁股說這不歸我們管。”
在幻滅之旅上,Wickham開發(fā)了ggplot2這個工具包。迄今為止,該工具包已經(jīng)被下載了幾百萬次,它不僅是Wickham最成功的作品,也改變了許多人對于數(shù)據(jù)可視化的觀念。ggplot2的巨大成功也促使他離開學術(shù)界去Rstudio擔任***科學家,從而專心致志地改進R。(Rstudio是R語言***的集成開發(fā)環(huán)境的盈利開發(fā)機構(gòu)。)
HadleyObama2
Hadley Wickham放了一個用ggplot2畫的圖片。圖片由David Kahle和Garrett Grolemund提供
ggplot2 包是以統(tǒng)計學家Leland Wilkinson 的“圖形語法”為基礎(chǔ),以一種數(shù)據(jù)可視化的形式開發(fā)的。Wickham把 ggplot2 和圖形語法看成是“不作為一系列機械操作的可視化思維方式(如從這里到那里畫一條線,在這里畫一點,把長方形涂上顏色)而是以可視化的思維將數(shù)據(jù)映射到你能看到的事物上。”
在圖形語法背后的概念是相當抽象的。***的想法是圖是由“幾何對象”(我們在圖表上看到的一個點或柱子的圖形元素)和“圖形屬性”(關(guān)于其中幾何形狀被放置的方向)組成的。這聽起來可能不是革命性的,但由Wickham實現(xiàn)的這個概念使得成千上萬的人可以更加容易地畫圖。問答網(wǎng)站Stack Overflow上已經(jīng)有近9000個問題標記為ggplot2,甚至說 ggplot2 在R中讓作圖變得更“好玩”。用 ggplot2 畫的圖已經(jīng)出現(xiàn)在了Nature,F(xiàn)iveThirtyEight和紐約時報上。
Hadley Wickham手里拿著一本關(guān)于他的可視化軟件包ggplot2 的中文譯本;圖片來源于statr
除了開發(fā)ggplot2和reshape包外,Wickham也設(shè)計了一些其他廣受歡迎的包來為數(shù)據(jù)科學家解決其他的重要問題。想用字(字符串)的形式很容易地操縱數(shù)據(jù)么?想從網(wǎng)上爬取數(shù)據(jù)么?需要輕松地編寫自己的包么?Wickham已經(jīng)幫你解決了。
在Quora(一個問答SNS網(wǎng)站,譯者注)上,一個R 用戶問道:“Hadley Wickham為什么能對R做出這么大的貢獻,尤其是在R包上?我依然不能詳細地算出Hadley到底做出了多少。他做出這么多東西看起來是不可能的……”R 社區(qū)的活躍會員Eduardo Arino de la Rubia說所有成功的編程語言需要像Hadley這樣的“名人”。他把Hadley與David Heinemeier Hansson(Web應(yīng)用程序框架的Ruby on Rails的創(chuàng)建者)和Tatsuhiko Miyagawa(編程語言Perl 的重要開發(fā)者)進行了比較。
下面的圖標展示了Hadley的超過2000次下載的17個包(有時候它們被戲稱為“Hadley宇宙”)的發(fā)布日期和下載的數(shù)量。這些下載數(shù)字少得可憐,因為它們只反映了從2012年年底其中一個流行的下載來源的數(shù)據(jù)。并且,是的,這個圖是用Hadley的包(ggvis)繪制的。
Dan Kopf, Priceonomics;數(shù)據(jù)來源:cranlogs
那么為什么Hadley創(chuàng)造了這一切?R是免費下載的,所有的包也是免費的,所以金錢的激勵是次要的。簡單地說,當一個問題比它應(yīng)有的狀態(tài)更難以解決時,Wickham就會耿耿于懷。雖然“其他大多數(shù)人都可以接受生活多艱這一事實”,但是Wickham卻做不到。
他說:“讓我成功的原因之一是我對挫折是極其敏感的。”
這種敏感性為他贏得了一個“奇特的惡名”。
在大多數(shù)情況下,Wickham是不起眼的,但是當他在R聚會或是統(tǒng)計數(shù)據(jù)發(fā)布會上,他就會變成一個搖滾明星。他說:“我能看到我的名譽達到了一種令人不安的水平。”他希望有人會寫一本關(guān)于“如何在一個非常特殊的領(lǐng)域做一個名人”的書,并且他擔心當人們滔滔不絕地談?wù)撍麜r不知道該如何正確行事。
雖然現(xiàn)在習慣了“惡名”,但他仍然會因為人們使用他創(chuàng)造的工具而感到興奮。他樂于在“Facebook,Google,Twitter,Tumblr……”中查看有多少人在使用他的工具。他說,只有在舊金山,人們在街上認出他的幾率會更大一些。他還提到最近對新聞媒體FiveThirtyEight的訪問讓他很高興,他覺得了解他人如何使用自己的工具是很酷的一件事(他們使用一個高度定制的ggplot2來繪制圖形)。
最重要的是,Wickham樂于給那些喜歡擺弄數(shù)據(jù)的人提供力量和支持。他解釋說:“通過數(shù)據(jù)從根本上了解世界真的是一件非常,非??岬氖虑?。讓我感到興奮的分析不是谷歌爬取了1 TB的網(wǎng)絡(luò)廣告數(shù)據(jù)來優(yōu)化收入, [而是]那些有著絕對熱情的生物學家,現(xiàn)在他們可以使用,并理解R了。”