回覆列表
  • 1 # 卓慕

    我也曾經是一個只做實驗的生物學學生,但現在已經能夠比較熟練地應用R語言完成自己需要的分析、實現想要實現的功能了。

    起步的話,其實R就自帶手把手入門教程:swirl。想要使用也非常簡單,裝好R和R Studio(只裝R不用R Studio也是沒問題的,只不過R Studio提供了非常友好的介面,可以提高程式設計效率)之後,在命令列中輸入install.packages("swirl"),即可快速安裝swirl。

    安裝完成後,再輸入library(swirl)載入swirl,載入成功後,輸入swirl(),就可以根據提示來一步步學習R語言的基本規則了。

    swirl的學習介面,可以透過它從頭開始一點點了解R的操作。

    學完了swirl的基本課程,你就會對R的基本操作有所瞭解了。此時,就可以讀入自己的資料,試著用各種函式對你的資料進行練習了。

    我個人認為,對著一兩本書從頭看到尾對於提高程式設計能力的幫助比較有限。反而,我覺得學習程式語言最重要的一點就在於勤動手,所以如果能找到一個學習案例,自己對著改一改引數、練一練演算法,會對理解和掌握程式語言有極大的幫助。

    如果只是要分析資料而對於掌握程式設計原理沒有太大要求的話,R裡提供了非常豐富的輯程包(packages),通常來說,對於生物學裡的許多分析,都可以找到專門的package進行相應分析,需要用什麼函式,只需要在閱讀一下函式的幫助文件,然後按照格式輸入引數就可以了。以進行線性迴歸計算的lm函式為例,基本的函式就是lm(),你需要做的基本操作就是在formula中輸入公式和在data中輸入資料表就可以了。假設我們有一個表格table,包含兩列,分別是y和x,如果你想做一元線性迴歸,用最小二乘法求這兩列數計算所得的迴歸線的斜率和截距,那麼只要輸入公式y~x,指明data為table就可以了:

    這是最基本的操作,如果想要做多元線性迴歸,只需要y~x1+x2+...(x1、x2為列名)就可以,具體的可以詳細讀formula的幫助。其他的引數設定,比如如何處理缺失值(na.action),也都寫在幫助中了,只需要詳細讀Arguments這一欄就好啦。實在不懂,可以在網上搜相關的例子,具體看看別人是如何操作的。不過當然,還是自己動手最重要!

    千萬別被“程式設計”兩個字嚇到,R中的函式跟圖形介面的分析軟體的按鍵其實沒有本質上的差別,只不過後者只需要用滑鼠點點,而前者需要手動寫入引數而已。建議題主拿出一兩天甚至只是一個下午的時間,親手在R中敲幾個函式練習一下,掌握了R的基本操作,後續也就會越走越輕鬆了。

    祝好運~

  • 2 # 迷幻主義搬磚號子

    很簡單,keep your hands dirty。不要看書,直接上手實操。

    先去datacamp學,邊看影片邊做題。在這個過程中,你會配好環境,學習基本語法。也會做一些小的專案。

    然後可以上coursera的data science課程,起碼學會github加rstudio版本管理,函數語言程式設計,以及knitr與可重複研究。最好學著自己寫一個程式包。

    這時候趁熱打鐵,就可以把這些東西用在自己的專案裡了。最好試著按程式設計師的要求來要求自己,堅持做版本管理、文件管理和程式碼模組化、單元測試,而不要只滿足於用批處理指令碼處理眼下的問題。試著用這些思路完成一個格式化報告,能增強你的信心。如果你學業完成的同時,把主要工作轉化為一個程式包,共享給學術社群,那將是非常大的收穫。

    這時候你再去讀The art of R programming, Advanced R這些書,就很容易真正入門了。

    入門以後再關注一些前沿的發展,學個python和spark之類的,就能進入更廣闊的領域。作為一個數據科學家,基本的技能集就已經建立起來了,正確的方法框架和工作習慣也都能同時建立起來。

  • 中秋節和大豐收的關聯?
  • 誰知道"袁"姓氏的來歷?