2010-07-30 41 views
49

Tôi đã sử dụng R trong hơn một năm nay và đó là một liên doanh thành công. Nhưng tất cả thường xuyên, tôi thấy rằng có một cái gì đó mà tôi không thể tìm ra vì thiếu hiểu biết làm thế nào để tìm thấy nó hoặc một ví dụ về nó.Học tập R. Bắt đầu từ đâu?

Stackoverflow,

bạn có thể đề nghị một con đường cho việc học R một cách cung cấp một với một bộ công cụ theo ý của họ để giải quyết các vấn đề có tính chất thống kê?

Có rất nhiều kiến ​​thức trên internet, giữa trang web r-project và danh sách thư nhưng có vẻ như "ở khắp mọi nơi" và không có nơi nào khi bạn thực sự tìm kiếm.

Ví dụ: khi lần đầu tiên tôi bắt đầu sử dụng R, tôi đã đi qua "Giới thiệu về R". Sau đó, tôi đọc định nghĩa ngôn ngữ (rõ ràng là không bị chìm). Nhưng mỗi khi tôi hỏi một câu hỏi về Stackoverflow, tôi đã trình bày một số hàm badass mới, đó là giải pháp cho tất cả các vấn đề của tôi trong ngắn hạn. Câu hỏi của tôi là, làm thế nào bạn biết những chức năng này tồn tại ở nơi đầu tiên? Và làm thế nào để tìm kiếm chúng? Có lẽ, bạn đọc một cái gì đó hoặc tìm thấy một số tài nguyên mà detoured học tập của bạn đến một phần mũ của đường cong. Nó là cái gì vậy?

Rõ ràng, chức năng của R như một công cụ thống kê là rộng. Vì mục đích của riêng tôi, tôi làm việc chủ yếu với dữ liệu kinh tế hoặc tài chính. Do đó, câu trả lời với điều này trong tâm trí sẽ hữu ích nhất.

+7

'install.packages (" sos "); thư viện (sos); findFn ("") 'có thể giúp ... RSeek, SO, R bloggers, RSS feeds, danh sách gửi thư ... phần còn lại là vấn đề kiên nhẫn của một người. Chúc may mắn! – aL3xa

+3

Một lý do R (và những thứ tương tự) mất một lúc để "học" là nó là một ngôn ngữ * thực *. Cũng giống như khi học bất kỳ ngôn ngữ nào, phải mất một thời gian trước khi một người đạt được "làm chủ", và một người không bao giờ thực sự học được. Càng giống một ngôn ngữ tự nhiên, càng có nhiều điều đúng. Đối với các ngôn ngữ như R, tôi rất muốn xem một cuốn sách có cách tiếp cận này để giảng dạy - giống như "R với Michel Thomas". –

+0

5 năm sau, một downvote. lol –

Trả lời

50

Phản hồi hoàn toàn thiên vị: tìm hiểu plyr, reshape2ggplot2. Chúng sẽ bao gồm 90% nhu cầu thao tác và trực quan hóa dữ liệu của bạn. Cả ba gói đều có một triết lý nhất quán về dữ liệu (mà cuốn sách ggplot2 chạm vào), và được thiết kế để phù hợp và dễ dàng hơn để tìm kiếm .

Thay vì học nhiều chức năng chuyên ngành, tôi thực sự khuyến khích bạn tìm hiểu về các hàm đơn giản có thể được cấu thành linh hoạt để giải quyết một loạt các vấn đề. Đây là những gì plyr phấn đấu để làm cho thao tác dữ liệu, và những gì ggplot2 phấn đấu để làm cho hình dung. Nó có nghĩa là bạn cần phải đầu tư thêm thời gian lên phía trước để tìm hiểu một chút về lý thuyết cơ bản, nhưng đó là niềm tin của tôi rằng nó sẽ trả hết tiền trong thời gian dài.

+0

Vì vậy, tôi là một fan hâm mộ chưa được hoan nghênh của tất cả các gói này và hoàn toàn đồng ý. Sử dụng điều này và các gói để lấy dữ liệu của bạn (loại công cụ RMySQL hoặc chỉ đọc.csv()) bạn có thể làm khá nhiều thứ. – Dan

+2

Tôi hoàn toàn đồng ý, mặc dù bạn đã quảng cáo sản phẩm của mình ... =) – aL3xa

+2

Khiêm tốn, nhưng đúng, chỉ là về mọi thứ tôi đã thực hiện đã tham gia vào một trong các gói đó .... – PaulHurleyuk

7

Có một cuốn sách miễn phí mà bạn có thể quan tâm: Introduction to Probability and Statistics Using R

+0

Và cách thức được xuất bản gần đây (tháng 7/2010). Cảm ơn bạn vì điều này, tôi sẽ dành thời gian để xem xét nó. –

+2

Tuy nhiên, phần tốt nhất: đó là giấy phép GPL, bạn thậm chí có thể tải xuống các tệp LyX/tex với biểu đồ eps/pdf. (Tôi đã thấy nó trên blog của Gregor Gorjanc, nếu bạn đăng ký RSS của R-bloggers, có thể bạn sẽ nhận được những thứ này khi đang nóng) – aL3xa

7

Tôi sẽ bắt đầu với điều này:

Câu hỏi của tôi là, làm thế nào bạn biết các chức năng này tồn tại ở nơi đầu tiên?

Đơn giản - chúng tôi đã cố gắng giải quyết vấn đề tương tự và gặp phải chức năng đó. Nó phù hợp hoặc không phù hợp với nhu cầu của chúng ta nhưng bây giờ chúng ta biết nó ở đó. Tôi đã không sử dụng R nhiều cá nhân nhưng những gì bạn đang mô tả là đường cong học tập cho mọi ngôn ngữ lập trình bao giờ hết. Thứ nhất, bạn học "ngữ pháp" tức là bạn có thể làm gì. Sau đó, bạn cố gắng làm một cái gì đó. Bạn thấy bạn không thể.

Ở giai đoạn đó, lập trình viên có một số tùy chọn. Tôi phải làm gì? Phụ thuộc. Tôi sẽ thử và tìm kiếm các gói/tiêu đề/thư viện/chức năng thành viên của bất cứ điều gì để xem có điều gì phù hợp với nhu cầu của tôi hay không. Tôi có thể Google nó, bởi vì trừ khi bạn đang thực sự đẩy ranh giới một nơi nào đó có lẽ đã cố gắng và thất bại để làm điều đó trước và có câu hỏi của họ trả lời. Nếu bạn đang đẩy ranh giới, ai đó ở đâu đó có thể đã cố gắng và thất bại trước đây, nhưng không có câu trả lời. Tôi có thể thử một hoặc hai diễn đàn để xem điều gì xảy ra. Cá nhân tôi không sử dụng IRC nhiều, nhưng đó là một tùy chọn khác, như là danh sách gửi thư tùy thuộc vào mức độ chuyên biệt của vấn đề.

Tôi cũng có một thư mục trên máy tính đầy đủ các cuốn sách mà tôi tìm kiếm tùy theo vấn đề và một thư viện sách nhỏ mà tôi xem qua/học từ đó, thường chứa thực tế, không hoàn toàn có thể thích ứng ví dụ.

Nhận xét duy nhất của tôi sẽ cố gắng đọc đặc tả ngôn ngữ không có khả năng hữu ích ồ ạt đối với bạn với tư cách là người mới bắt đầu. Bạn sẽ không hoàn toàn hiểu ý nghĩa của nó vì bạn chưa đẩy giới hạn và thử mọi thứ. Ví dụ: một người mới ở C có thể thử điều này:

char c = '7'; 
int x = (int) c; 

để chuyển đổi ký tự '7' sang dạng nguyên.Nó không phải là một quá trình suy nghĩ xấu cho đến khi bạn hiểu làm thế nào các ký tự và ASCII làm việc, sau đó bạn thấy lý do tại sao trên không cung cấp cho bạn những gì bạn muốn.

Tóm lại, tôi nghĩ rằng đây sẽ là một phần của quá trình học tập và tôi không nghĩ rằng bạn có thể cắt ngắn hơn. Sự an ủi giống như bất kỳ nghiên cứu nào, bạn càng làm điều đó càng có nhiều bạn sẽ biết nơi để tìm và những câu hỏi để hỏi về các cộng đồng khác nhau.

+0

Tôi đồng ý với bạn. Thời gian dành cho nghiên cứu vấn đề của một người là cách tốt nhất để học hỏi. Nhưng tôi cũng tin rằng chắc chắn có những thực hành và tài nguyên tốt nhất mà những người khác đã tạo ra có thể giúp ích đáng kể - khi bạn biết nơi cần tìm :) Và đó là mục đích của câu hỏi này. –

8

cách của tôi như thế nào tôi đã học R.

nguồn lực R:

  • Để tìm hiểu R, các nguồn lực quan trọng nhất là google. tìm kiếm: “TOPIC r-project”, “TOPIC filetype: r” hoặc “TOPIC site: nabble.com”.

  • Thứ hai, hãy xem mã ví dụ được cung cấp với hầu hết các gói. chuyển đến “http://bm2.genes.nig.ac.jp/”, tìm kiếm chủ đề và xem mã ví dụ. chạy nó và điều chỉnh nó, theo cách này bạn thường có thể giải quyết một phần vấn đề của bạn.

  • Thứ ba: danh sách gửi thư trợ giúp. Đọc các bài viết, các câu hỏi cơ bản được hỏi nhiều lần. Nếu bạn có một vấn đề và bạn hoàn toàn bị mắc kẹt, hãy đặt một câu hỏi trong danh sách gửi thư.

  • Cuối cùng, hãy xem mã nguồn của các gói R. đó là phần khó nhất. nếu bạn có thể thay đổi mã yêu cầu của bạn, bạn đã nắm vững R ;-)

Một số Mẹo:

  • R có một đường cong learing dốc. đó là một tính năng ;-), nó được thiết kế để giải quyết các vấn đề nâng cao và cuối cùng bạn nhanh hơn khi sử dụng thay thế cho R.

  • Biết mọi gói và chức năng R có liên quan đến vấn đề của bạn. sức mạnh của R là có rất nhiều gói availiable (khoảng năm 2000, tôi nghĩ). Thông thường, luôn luôn có một gói phù hợp hơn hoặc đã giải quyết được vấn đề của bạn.(một số trang trợ giúp bị viết và khó hiểu - tôi quen với nó)

  • Sách R không hữu ích trong việc học R. vâng, điều đó đúng. Nếu bạn là một lập trình viên chuyên gia và chuyên gia thống kê, bạn không cần bất kỳ cuốn sách nào về R. (chỉ ngoại lệ là sách ggplot2 của Hadley Wickham). Nếu bạn không, học lập trình nói chung và/hoặc số liệu thống kê nâng cao.

  • Một số gói R có lỗi đã biết, mà không ai sửa lỗi (chủ sở hữu gói còn lại đại học, v.v.). chỉ là một cảnh báo, điều này có thể phức tạp nếu bạn đang tìm kiếm một lỗi trong mã của bạn và lỗi này nằm trong gói R.

+7

Không chắc chắn tôi đồng ý về "sách R không hữu ích trong việc học R". Phụ thuộc vào cuốn sách và người học. –

7

Một trong những điều tôi làm là tuân theo nguồn cấp dữ liệu RSS của câu hỏi R trên SO (https://stackoverflow.com/feeds/tag/r). Sau đó, tôi có thể duyệt những gì người khác đã hỏi/trả lời.

Thường thì tôi sẽ yêu thích một câu hỏi/câu trả lời cụ thể nếu tôi nghĩ mình sẽ sử dụng hoặc ghi lại các điểm nổi bật vào phần mềm sổ tay của mình (OneNote), thỉnh thoảng tôi sẽ tự mình thử câu hỏi/trả lời.

CHỈNH SỬA:

Tôi cũng sẽ đề nghị cuốn sách của Patrick Burn R-Inferno. Nó không phải là quá nhiều của một cuốn sách đào tạo như là một mô tả của tất cả các gotchas và oooh khoảnh khắc Patrick đã tìm thấy (cho đến nay).

4

Học các gói RODBC tương tác trực tiếp với Oracle dữ liệu tạo ra tác động lớn đến công việc của tôi. Ông chủ của tôi đã ngạc nhiên khi tôi kéo dữ liệu Oracle trực tiếp vào R và tạo ra một âm mưu chỉ trong một vài dòng mã. Hãy thử làm điều đó trong Excel!

Đạo đức của câu chuyện, tìm hiểu cách lấy dữ liệu và thao tác trong phạm vi R. Sau đó chuyển sang một số nội dung thú vị khác như ggplot.

1

Câu hỏi thường gặp về thẻ [R], ngay tại đây trên Stackoverflow, https://stackoverflow.com/questions/tagged/r?sort=faq&pagesize=50 cung cấp nhiều ví dụ có thể tái sản xuất mà người ta có thể sử dụng để "học bằng cách thực hiện".

Hầu hết các vấn đề là rất phổ biến và cuối cùng sẽ là thứ mà bạn sẽ phải tìm kiếm như một người mới bắt đầu. Câu hỏi thường gặp cũng cung cấp các ví dụ có tính sử dụng rất cao (và có kinh nghiệm) cho một loạt các chức năng và các gói hữu ích khác nhau.

Nếu bạn mới làm quen với R và bạn thích tiếp cận học tập nhiều hơn, không nên bỏ qua Câu hỏi thường gặp làm tài nguyên tiềm năng cho việc học. Nhiều câu hỏi cũng cung cấp thảo luận hữu ích xung quanh các mô hình của chính ngôn ngữ đó (vectorization, quy trình làm việc, gỡ lỗi chỉ là một vài ví dụ).

Gần như mọi câu hỏi trong Câu hỏi thường gặp đều đáng học như một người dùng mới khi nó chạm vào các yếu tố, tự nói cho bản thân mình, tôi ước tôi đã được chỉ ra khi tôi hỏi câu hỏi này ban đầu.

Chỉ cần một vài ví dụ:

2

Cuốn sách mà đã giúp tôi học được nhiều nhất là The Art of R Programming. Rất nhiều sách lập trình có thể khô. Vì R thường là một điểm vào để lập trình nên điều quan trọng là tiếng nói của vật liệu để cộng hưởng với học sinh. Cuốn sách đó đã làm điều đó với tôi. Giọng nói rất bình thường và tôi thích điều đó.

Các vấn đề liên quan