[R語言資源]遇上R語言問題不知道怎麼辦嗎?可以向R語言高手發問,尋求解答的8個地方

18

Last Updated on 2023-10-05

Home » R語言資源 » R語言地圖 » [R語言資源]遇上R語言問題不知道怎麼辦嗎?可以向R語言高手發問,尋求解答的8個地方

寫R程式卡住、不知道R語言的套件怎麼用,R語言討論區、問答網站、社團幫你整理


只要是寫程式,就有可能會卡住,有時候忘記該用哪一個套件、哪一個函數,有時候是遇到抽象問題,不確定該如何轉換成程式邏輯。R語言自然也是如此,例如 ggplot2,有那麼多層的繪圖文法,有時候不小心漏掉部分便滿盤皆輸,還有 stringr,都用 str_() 開頭,真的很容易忘記該用哪個函數。

我整理了 8 個遇上R語言的程式問題時,你可以提問的地方,這些網站橫跨中文與英文,有專攻R語言的版面,也有更廣泛的程式社群;有來者不忌作業考試通包的熱心版友,也有討論品質上乘專業絕倫的討論區,就看你需要哪一個。底下我會按照性質區分,並逐一介紹這些R語言相關的討論版,都是好地方!

R語言專版

台灣R軟體Club

台灣R語言Club是台灣目前以R語言為主題最大的臉書社團,平常主要的文章以提問為主,有上班族問工作時遇到的R語言問題,也有學生拿自己的作業來問,說起來有好也有壞,這邊的版友對於各類問題來者不拒,沒有打出程式碼、只有截圖,或者連截圖都沒有,僅以文字說明,大家都還是會熱心回答。

除了問答以外,版上也會有R語言書籍的交易貼文,以及徵求R語言家教和徵求R語言作業的代筆者。另外,時不時有人分享R語言的新知,運氣好的話,還會有功力深厚的版友貼上跟當下套件發展相關、平常使用的程式碼,例如先前中研院釋出與 python 對接的 CKIP 模型時,就有版友分享該如何以R語言呼叫這個模型,藉此更好地執行繁體中文斷詞相關任務。

版友很好心的分享如何用R呼叫ckip模型,他回答問題時也是鉅細靡遺,且非常有耐心。

PTT R語言版

PTT R_Language 版是另一個尋求答案的地方。這裡發問的門檻略高一些,至少要明確舉出自己遇到的問題,並寫出自己對R的熟悉程度,還有自己遇上問題的R環境(session info)。不過,只要遵守模板的要點,版友幾乎是有問必答。

R語言版上有常駐幾位專家,從最小的函數問題到進階的資料處理思維,再一直到效能、平行運算等等,他們總是不吝於分享經驗。雖然PTT的留言會依照句子長度斷詞,程式碼呈現上不易閱讀,但大家就會利用線上的程式碼暫存平台回答,總之,是一個版友很願意彼此回覆的好地方。

在R語言版上發問,要寫出問題類型、對R的熟悉程度、描述問題、環境敘述等。

綜合版

大數俱樂部

這個臉書社團由師大全球經營與策略研究所教授何宗武創立與經營。何老師主攻財金與經濟領域,精通R跟Python,著作等身之外,更時常更新維護他開發的R語言套件。值得一提的是,先前何老師主動爭取翻譯R主程式,替台灣奠定了繁體中文版本用詞的基礎。

社團中何老師時常分享R語言相關的內容,最近的主題都以視覺化和實際案例為主,有時也會有其他版友提問;偶爾也會有Python相關的討論。算是台灣R語言Club以外,另一個重要的、會討論R語言的資料科學綜合姓社團。

何老師出版了許多與R語言相關的書籍。

iT邦幫忙

對學程式的人來說,iT邦幫忙最有名的應該就是它的「iThome 鐵人賽」,每年號召版友一起加入連續三十天不間斷的技術文章撰寫旅程,因為關注的人多、流量不錯,得獎者又有機會出書,因此總能吸引數百甚至近千人參加。iT邦幫忙除了程式寫作以外,也有提問的版面,可以在上面詢問R語言的相關問題。

iThome 鐵人賽的技術涵蓋範圍很廣,因此能看到多元的出版書籍。

Dcard數學版

Dcard 上沒有R語言的專版,大家主要都在數學版上發問,也可以追蹤相關標籤。不過相對於上面的其他提問空間,這邊的R語言討論量體較小,可以先考慮去其他版問問題。

雖然討論量不大,但Dcard上的版友也會熱心回覆R語言的問題,雖然有些看起來像是幫忙做作業就是了。

Stack Overflow

Stack Overflow 可能是程式託管平台 Github 以外,最多程式設計師出沒的網站了。它本身的宗旨就是程式相關專業的問答網站,針對提問者的困惑,回答者會提出多種解決方案,因此可以看到不同人的思考方式、解題方法,很值得一觀。

不過,這邊的提問門檻相對也高,必須提出「最小、可重複性舉例」(Minimal, Reproducible Example),版友才會願意回答。舉個例子,你可能在用 dplyr 套件時,想要利用 filter() 函數,依照一定條件篩選出你要的列。然而,實際跑程式的時候你發現居然不符你的預期。

如果你在版上說「我想用 filter() 篩選出 2022 年 10 月以後的資料但失敗了。」這樣的說法看似明確,但失敗的表象背後可能有諸多原因,可能是你的大於小於符號寫錯了,可能是你的日期欄位不是 date format,也有可能你的資料本身遇到編碼問題,讀取進來其實那個欄位根本沒有東西等等。因為版友無法通靈出問題的根源,才會要求大家舉出「最小、可重複性舉例」。

不過,這裡的版友可以說是這篇文章介紹的所有地方當中,最專業的一群,跟底下會提到的 Github 套件開發者不相上下,所以討論品質很高。若你的英文能力不錯,又想要腦力激盪,則不妨參考這兒。

Stack Overflow 上利用評分機制促進大家提出高品質的回答內容。

統計之都

統計之都(Capital of Statistics)是對岸的統計學社群,網站裡面有一個熱絡的統計論壇。統計之都的創辦人是大神級人物謝益輝 ,他堪稱多工界的王者、開發界的霸主,對R語言的發展貢獻無數,不僅是 knitr, blogdown, bookdown, DT 等套件的作者,同時參與開發 rmarkdown, shiny, leaflet 且作為其主要貢獻者。

將重點拉回統計之都的論壇,這裡兼顧理論和應用知識,要問統計學公式的推導、定理背後的假設,或者是R程式,都是沒有問題的,這裡的人很有耐心。

其他

Github 上套件的 Issues 分頁

最後一個地方比較特別,是 Github 上特定套件的頁面。Github 是程式語言開發者存放、託管程式碼的地方,程式設計師可以在上面觀摩,學習他人如何寫出優雅簡潔的程式碼。此外,Github 也有多人共同協作(collaborate)的功能,小組成員可以集體開發同一項專案。

不僅如此,因為開源文化盛行,很多程式開發者會開放自己開發套件的程式碼,R語言的套件有上傳至 CRAN 的皆是如此。因此,使用者在欣賞之餘,也能發揮 1+1 > 2 的精神,例如看到 bug 直接撰寫補釘修正,或者是協助開發新的功能(feature)。

若你遇到問題百思不得其解,而且 Stack Overflow 上沒人回或者是沒人知道答案,你可以考慮去你遇到問題的套件的 Github,在 issues 分頁中,使用者會留言反映 bug、希望開發功能、建議等等,你可以在那邊提問。

以 dplyr 為例,目前有 21 個待解的 issues,過往共有 4,599 個結束的 issues,也就是解決或者沒有後續。

不過,因為套件開發者非常忙碌,身上可能背負好幾個套件要修整、Github上累積數百則通知,所以他們未必有時間回應,有時候會有熱心人士上來幫忙;此外,你的問題若不是 bug 而只是使用上的 problem,可能會被趕回 Stack Overflow,還請多加注意。

隱藏推薦:愛上R語言

如果你逛過這些地方或者發問過,覺得不夠、還想找人交流,那我想向你自我推薦,我是一個R語言愛好者,幾年前進入R的世界後便無法自拔。若你有R語言的相關問題,歡迎在此留言。

若你對R語言的電子書感興趣,可以看這篇我先前寫的文章。以後我會寫更多R語言相關的學習內容,敬請期待!

本文由「愛上R語言」發布,非經允許請勿轉貼。

遇上R語言問題怎麼辦?

可以去台灣R軟體Club、PTT R語言版、大數俱樂部、iT邦幫忙、Dcard數學版、Stack Overflow、統計之都發問。

18 Comments

  1. 我是R語言新手,想請教您,若我有2班(A班和B班)學生數學成績的資料,分別是
    A班: 小明88分,小智75分,小剛80分,小豪79分,小林67分
    B班: 龍貓90分,小龍貓88分,煤炭球67分
    現在我想要對兩班成績進行標準化,但是B班我希望他是依據A班的平均數和標準差進行標準化,A班我可以直接用scale(A班)的方式進行,但是B班該怎麼做?麻煩您解惑。

    • Tony 您好,底下提供兩個方法,第一個會用到 scale() 函數,第二個不會,但兩個方法的目的都一樣,同樣希望能計算出 A班的平均值與標準差,這樣就可以自由地套用到B班了。請參考下方程式碼,若有問題請再提出:

      # 成績
      A <- c(88,75,80,79,67) B <- c(90,88,67) ## 方法一 A_scale <- scale(A) # 平均 A_mean <- attr(A_scale,"scaled:center") # 標準差 A_sd <- attr(A_scale,"scaled:scale") # 計算 (B-A_mean)/A_sd ## 方法二 (B-mean(A))/sd(A)

    • 程式碼的換行有點問題,還不確定是怎樣,希望上面的內容不會太難懂,不好意思

  2. 您好
    非常感謝您,剛剛有嘗試一下,覺得很實用,但是當我的資料變成多種科目時,好像又跑不出,再麻煩您幫忙,資料如下:
    國文 英文 數學 社會
    小明 61 77 88 76
    小智 70 81 75 77
    小剛 78 88 80 77
    小豪 65 89 79 85
    小林 84 85 67 88
    希望B班的同學能依A班的科目進行標準化。
    萬分感謝!

    • Tony 好:

      確認一下
      A. 小明小智等人都是A班嗎?
      B. 依照A班去標準化B班,需要考慮不同科目嗎?還是一視同仁辦理?

    • 其實萬變不離其宗,只要取得出平均跟標準差即可,建議不用使用 scale() 函數,直接用 mean() 跟 sd() 計算就好

  3. I have read your article carefully and I agree with you very much. This has provided a great help for my thesis writing, and I will seriously improve it.

  4. Thank you for your shening. I am worried that I lack creative ideas. It is your enticle that makes me full of hope. Thank you.

  5. Thank you for your shening. I am worried that I lack creative ideas. It is your enticle that makes me full of hope. Thank you.

  6. The point of view of your article has taught me a lot, and I already know how to improve the paper, thank you.

  7. I may need your help. I tried many ways but couldn’t solve it, but after reading your article, I think you have a way to help me. I’m looking forward for your reply. Thanks.

  8. Your article helped me a lot, is there any more related content? Thanks!

  9. Currently it appears like is the top blogging platform available right now. (from what I’ve read)

  10. The article discusses the implications of the research for different industries.

  11. The author provides detailed explanations to support their points.

  12. I like it whenever people get together and share views.
    Great site, keep it up!

  13. There is certainly a great deal to learn about this topic.
    I like all the points you’ve made.

  14. WOW just what I was looking for. Came here by searching for

Leave a Reply