終極對決:R 與 Excel 在數(shù)據(jù)分析當(dāng)中的優(yōu)劣勢對比
我從事數(shù)據(jù)分析工作已經(jīng)有十年之久。最初是出于工作需要,我的經(jīng)理給我一堆數(shù)據(jù),我需要處理這些數(shù)據(jù)。當(dāng)時我一直使用的工具是 Excel,因為這是我熟練掌握的一款工具。三年前,我開始接觸到 R,一開始因為功能太多而堅決抵制使用。后來我開始琢磨如何使用。現(xiàn)在我基本不怎么使用 Excel 了。這只是我個人的觀點,但是如果你要分析數(shù)據(jù),R 更勝任這項任務(wù)。下面來說說為什么 R 更適合數(shù)據(jù)分析。

這兩款工具的使用方法截然不同。使用 Excel 時,可以通過鼠標(biāo)點擊完成大部分工作,你可以訪問界面內(nèi)不同位置的各種工具。因此 Excel 非常便于使用(熟能生巧),但是用 Excel 處理數(shù)據(jù)非常費時,而且如果接手一個新項目,你必須單調(diào)地重復(fù)這些流程。使用 R 時,則通過代碼完成所有操作。你把數(shù)據(jù)載入內(nèi)存,然后運行腳本來研究并處理數(shù)據(jù)。這個工具可能不夠人性化,但是有以下幾點好處。
我認(rèn)為,從概念上來說,R 更便于使用。如果你在處理多列數(shù)據(jù),雖然你只是在處理單個任務(wù),但是卻會看到所有的數(shù)據(jù)。而使用 R 時,數(shù)據(jù)都在內(nèi)存中,只有調(diào)出數(shù)據(jù)才能看到。如果你在轉(zhuǎn)換或計算,你會處理相關(guān)列或行的子集,其他所有數(shù)據(jù)都在后臺。我覺得這樣更便于關(guān)注手頭的任務(wù)。完成任務(wù)后,可將其保存在某個數(shù)據(jù)幀中,其中只包含所需的列或行數(shù)據(jù)。你建立了正確的數(shù)據(jù)集,可解決當(dāng)前的問題。這樣做看似無關(guān)緊要,但實際上大受裨益。
借助 R,就可以對其他數(shù)據(jù)集輕松重復(fù)相同的操作。因為所有數(shù)據(jù)都是通過代碼進(jìn)行處理和研究,因此對新的數(shù)據(jù)集執(zhí)行相同的操作也就輕而易舉了。使用 Excel 時,大多數(shù)操作都是通過鼠標(biāo)點擊實現(xiàn),雖然用戶體驗不錯,但對新的數(shù)據(jù)重復(fù)操作卻非常費時而枯燥。而 R 只需載入新的數(shù)據(jù)集,然后再次運行腳本即可。
實際上,用代碼操作也便于診斷并共享你的分析結(jié)果。使用 Excel 時,大多數(shù)的分析結(jié)果都基于內(nèi)存(數(shù)據(jù)透視表在這里,公式編輯器在另一個表格上等)。而在 R 中,通過代碼執(zhí)行所有操作,一目了然。如果你在修正一個錯誤,你很清楚在哪里操作,而如果你需要共享分析結(jié)果,只需復(fù)制粘貼代碼即可。在線查找?guī)椭鷷r,你能準(zhǔn)確說明所用數(shù)據(jù),并提出具體的問題。事實上,大多數(shù)時候,你在線提問時,人們都是直接貼出準(zhǔn)確的代碼,來解決你的問題。
R 中的項目組織更簡單。在 Excel 中,我要準(zhǔn)備一系列表格,可能還要準(zhǔn)備多個工作簿,然后適當(dāng)命名,而且各文件名不得重復(fù)。我的項目備注分別保存在各個文件中。我的 R 項目組織單獨設(shè)有一個文件夾,我處理過的所有內(nèi)容都放在其中。清理數(shù)據(jù)、探索性圖表及模型。這樣便于我理解和查找,也為與我一起工作的其他人提供方便。當(dāng)然,Excel 也能做到井井有條。我覺得 R 的簡潔性更便于使用。
上述幾點只能說是錦上添花,而并不是必不可少。在沒有這些功能之前,我也用了好幾年 Excel,你應(yīng)該也一樣。現(xiàn)在,我想講講 R 和 Excel 真正的區(qū)別。我想說的是,除了以上那些花哨的小優(yōu)勢之外,R 更適合用于數(shù)據(jù)分析。原因如下。
你可以把任何數(shù)據(jù)載入 R。數(shù)據(jù)的保存位置或保存形式并不重要。你可以載入 CSV 文件,也可以讀取 JSON,或者執(zhí)行 SQL 查詢,抑或提取網(wǎng)站。你甚至還可以在 R 中通過 Hadoop 處理大數(shù)據(jù)。
R 是一個完整的工具集,使用的是數(shù)據(jù)包。在分析數(shù)據(jù)時,R 比 Excel 更實用。你可使用 R 執(zhí)行數(shù)據(jù)管理、分類和回歸,也可以處理圖片,并執(zhí)行其他所有操作。如果機器學(xué)習(xí)是你的專業(yè),那能想到的任何算法都是小菜一碟。目前,R 可用的數(shù)據(jù)包逾 5,000 個,因此無論你要處理什么類型的數(shù)據(jù),R 都能應(yīng)付自如。

R 的數(shù)據(jù)可視化效果非常卓越。說句實話,Excel 的圖表非常出色,簡單易懂。但 R 的效果更好。我覺得這是 R 最實用的功能之一。借助 ggplot2,你可以快速創(chuàng)建所需的各種圖表,并根據(jù)圖表形狀自行調(diào)整。在你熟悉了如何用 ggplot2 創(chuàng)建一個圖表后,任何其他圖表都不在話下。ggplot2 還能制作更多類型的圖表。你能用 Excel 創(chuàng)建散點圖矩陣嗎?用 R 就能輕松創(chuàng)建這種矩陣,CDF plot 也是如此。Excel 棋差一招。
Git 版本控制。我一向習(xí)慣保存多個版本的分析結(jié)果。Git 是至今為止我找到的***用的工具。我使用 RStudio 作為編輯器,其支持項目。創(chuàng)建一個項目倉庫,然后你就能跟蹤數(shù)據(jù)研究的不同版本。你可以創(chuàng)建不同版本的 Excel 文件,但是這些保存的二進(jìn)制文件無法顯示相互之間的更改部分。而 R 非常簡單。
我已經(jīng)說了很多理由。總之,Excel 是一款不錯的數(shù)據(jù)分析工具。我相信它能不負(fù)眾望完成所有任務(wù)。但是,如果你只有這一款工具,則會大大影響你的工作效率。相比之下,R 更好用,而且提供的工具集模塊更完整。而缺點在于不是非常易于上手,用戶一開始相對要花很多時間學(xué)習(xí)使用。如果堅持下去,就會有所收獲,不僅對數(shù)據(jù)更了解,還提高了自己的能力。