1 Giới thiệu | R cho Khoa học dữ liệu (2024)

Khoa học dữ liệu là một môn học thú vị cho phép bạn biến dữ liệu thô thành sự hiểu biết, hiểu biết sâu sắc và kiến ​​thức. Mục tiêu của “R for Data Science” là giúp bạn tìm hiểu các công cụ quan trọng nhất trong R sẽ cho phép bạn thực hiện khoa học dữ liệu. Sau khi đọc cuốn sách này, bạn sẽ có các công cụ để giải quyết nhiều thách thức về khoa học dữ liệu bằng cách sử dụng những phần tốt nhất của R.

1.1Bạn sẽ học được gì

Khoa học dữ liệu là một lĩnh vực rộng lớn và bạn không thể nào thành thạo nó chỉ bằng cách đọc một cuốn sách. Mục tiêu của cuốn sách này là cung cấp cho bạn nền tảng vững chắc về những công cụ quan trọng nhất. Mô hình của chúng tôi về các công cụ cần thiết trong một dự án khoa học dữ liệu điển hình trông giống như thế này:

1 Giới thiệu | R cho Khoa học dữ liệu (1)

Đầu tiên bạn phảinhập khẩudữ liệu của bạn vào R. Điều này thường có nghĩa là bạn lấy dữ liệu được lưu trữ trong tệp, cơ sở dữ liệu hoặc giao diện lập trình ứng dụng web (API) và tải dữ liệu đó vào khung dữ liệu trong R. Nếu bạn không thể đưa dữ liệu của mình vào R, bạn không thể làm khoa học dữ liệu về nó!

Khi bạn đã nhập dữ liệu của mình, bạn nênngăn nắpNó. Sắp xếp dữ liệu của bạn có nghĩa là lưu trữ nó ở dạng nhất quán phù hợp với ngữ nghĩa của tập dữ liệu với cách nó được lưu trữ. Tóm lại, khi dữ liệu của bạn gọn gàng, mỗi cột là một biến và mỗi hàng là một quan sát. Dữ liệu gọn gàng rất quan trọng vì cấu trúc nhất quán cho phép bạn tập trung nỗ lực vào các câu hỏi về dữ liệu chứ không phải đấu tranh để đưa dữ liệu về dạng phù hợp cho các chức năng khác nhau.

Khi bạn có dữ liệu gọn gàng, bước đầu tiên thông thường làbiến đổiNó. Chuyển đổi bao gồm thu hẹp các quan sát quan tâm (như tất cả người dân trong một thành phố hoặc tất cả dữ liệu từ năm ngoái), tạo các biến mới là hàm của các biến hiện có (như tốc độ tính toán theo khoảng cách và thời gian) và tính toán một tập hợp tóm tắt số liệu thống kê (như số lượng hoặc phương tiện). Cùng nhau dọn dẹp và biến đổi được gọi làcãi nhau, bởi vì việc lấy dữ liệu của bạn ở dạng tự nhiên để làm việc thường có cảm giác giống như một cuộc chiến!

Khi bạn có dữ liệu gọn gàng với các biến bạn cần, sẽ có hai công cụ tạo ra kiến ​​thức chính: trực quan hóa và mô hình hóa. Chúng có điểm mạnh và điểm yếu bổ sung cho nhau nên bất kỳ phân tích thực tế nào cũng sẽ lặp lại giữa chúng nhiều lần.

Hình dungcơ bản là hoạt động của con người. Một hình ảnh trực quan tốt sẽ cho bạn thấy những điều bạn không mong đợi hoặc đưa ra những câu hỏi mới về dữ liệu. Một hình ảnh trực quan tốt cũng có thể gợi ý rằng bạn đang đặt sai câu hỏi hoặc bạn cần thu thập dữ liệu khác. Hình ảnh trực quan có thể làm bạn ngạc nhiên nhưng không có quy mô đặc biệt tốt vì chúng yêu cầu con người diễn giải chúng.

Người mẫulà những công cụ bổ sung cho việc trực quan hóa. Sau khi đã đặt câu hỏi đủ chính xác, bạn có thể sử dụng mô hình để trả lời chúng. Mô hình là một công cụ tính toán hoặc toán học cơ bản nên chúng thường có quy mô tốt. Ngay cả khi không, việc mua nhiều máy tính thường rẻ hơn mua nhiều bộ não hơn! Nhưng mọi mô hình đều đưa ra các giả định và về bản chất, một mô hình không thể đặt câu hỏi về các giả định của chính nó. Điều đó có nghĩa là về cơ bản một mô hình không thể làm bạn ngạc nhiên.

Bước cuối cùng của khoa học dữ liệu làgiao tiếp, một phần cực kỳ quan trọng của bất kỳ dự án phân tích dữ liệu nào. Không quan trọng các mô hình và hình ảnh trực quan của bạn đã giúp bạn hiểu dữ liệu tốt đến mức nào trừ khi bạn cũng có thể truyền đạt kết quả của mình cho người khác.

Xung quanh tất cả các công cụ này làlập trình. Lập trình là một công cụ xuyên suốt mà bạn sử dụng trong mọi phần của dự án. Bạn không cần phải là một lập trình viên chuyên nghiệp để trở thành nhà khoa học dữ liệu, nhưng việc tìm hiểu thêm về lập trình sẽ mang lại lợi ích vì việc trở thành một lập trình viên giỏi hơn cho phép bạn tự động hóa các tác vụ thông thường và giải quyết các vấn đề mới dễ dàng hơn.

Bạn sẽ sử dụng những công cụ này trong mọi dự án khoa học dữ liệu, nhưng đối với hầu hết các dự án thì chúng không đủ. Có một quy tắc thô 80-20 đang diễn ra; bạn có thể giải quyết khoảng 80% mọi dự án bằng cách sử dụng các công cụ bạn sẽ học trong cuốn sách này, nhưng bạn sẽ cần các công cụ khác để giải quyết 20% còn lại. Xuyên suốt cuốn sách này, chúng tôi sẽ chỉ cho bạn những nguồn tài nguyên mà bạn có thể tìm hiểu thêm.

1.2Cuốn sách này được tổ chức như thế nào

Mô tả trước đây về các công cụ của khoa học dữ liệu được sắp xếp gần đúng theo thứ tự bạn sử dụng chúng trong phân tích (mặc dù tất nhiên bạn sẽ lặp lại chúng nhiều lần). Tuy nhiên, theo kinh nghiệm của chúng tôi, đây không phải là cách tốt nhất để học chúng:

  • Bắt đầu với việc nhập và dọn dẹp dữ liệu là chưa tối ưu vì 80% thời gian là công việc thường ngày và nhàm chán, còn 20% còn lại là kỳ lạ và khó chịu. Đó là một nơi tồi tệ để bắt đầu học một môn học mới! Thay vào đó, chúng ta sẽ bắt đầu bằng việc trực quan hóa và chuyển đổi dữ liệu đã được nhập và sắp xếp gọn gàng. Bằng cách đó, khi bạn tiếp thu và sắp xếp dữ liệu của mình, động lực của bạn sẽ cao vì bạn biết nỗi đau đó là xứng đáng.

  • Một số chủ đề được giải thích tốt nhất bằng các công cụ khác. Ví dụ: chúng tôi tin rằng bạn sẽ dễ hiểu cách hoạt động của các mô hình hơn nếu bạn đã biết về trực quan hóa, dữ liệu gọn gàng và lập trình.

  • Các công cụ lập trình không nhất thiết phải thú vị nhưng chúng cho phép bạn giải quyết những vấn đề khó khăn hơn đáng kể. Chúng tôi sẽ cung cấp cho bạn một số công cụ lập trình ở giữa cuốn sách và sau đó bạn sẽ thấy cách chúng có thể kết hợp với các công cụ khoa học dữ liệu để giải quyết các vấn đề thú vị về mô hình hóa.

Trong mỗi chương, chúng tôi cố gắng tuân theo một khuôn mẫu tương tự: bắt đầu với một số ví dụ tạo động lực để bạn có thể nhìn thấy bức tranh toàn cảnh hơn, sau đó đi sâu vào chi tiết. Mỗi phần của cuốn sách đều đi kèm với các bài tập để giúp bạn thực hành những gì đã học. Mặc dù việc bỏ qua các bài tập là điều rất hấp dẫn nhưng không có cách học nào tốt hơn là thực hành trên các vấn đề thực tế.

1.3Những gì bạn sẽ không học được

Có một số chủ đề quan trọng mà cuốn sách này không đề cập đến. Chúng tôi tin rằng điều quan trọng là phải luôn tập trung cao độ vào những điều cần thiết để bạn có thể bắt đầu và hoạt động nhanh nhất có thể. Điều đó có nghĩa là cuốn sách này không thể đề cập đến mọi chủ đề quan trọng.

1.3.1Dữ liệu lớn

Cuốn sách này tự hào tập trung vào các tập dữ liệu nhỏ, trong bộ nhớ. Đây là nơi thích hợp để bắt đầu vì bạn không thể giải quyết dữ liệu lớn trừ khi bạn có kinh nghiệm với dữ liệu nhỏ. Các công cụ bạn học trong cuốn sách này sẽ dễ dàng xử lý hàng trăm megabyte dữ liệu và chỉ cần cẩn thận một chút, bạn thường có thể sử dụng chúng để làm việc với 1-2 Gb dữ liệu. Nếu bạn thường xuyên làm việc với dữ liệu lớn hơn (chẳng hạn như 10-100 Gb), bạn nên tìm hiểu thêm vềbảng dữ liệu. Cuốn sách này không dạy data.table vì nó có giao diện rất ngắn gọn khiến việc học khó hơn vì nó cung cấp ít tín hiệu ngôn ngữ hơn. Nhưng nếu bạn đang làm việc với dữ liệu lớn, hiệu suất đạt được sẽ xứng đáng với nỗ lực cần thiết để tìm hiểu nó.

Nếu dữ liệu của bạn lớn hơn mức này, hãy xem xét cẩn thận xem vấn đề dữ liệu lớn của bạn có thực sự là một vấn đề dữ liệu nhỏ được ngụy trang hay không. Mặc dù dữ liệu hoàn chỉnh có thể lớn nhưng dữ liệu cần thiết để trả lời một câu hỏi cụ thể thường nhỏ. Bạn có thể tìm thấy một tập hợp con, mẫu phụ hoặc bản tóm tắt phù hợp với bộ nhớ mà vẫn cho phép bạn trả lời câu hỏi mà bạn quan tâm. Thử thách ở đây là tìm ra dữ liệu nhỏ phù hợp, thường đòi hỏi phải lặp lại nhiều lần.

Một khả năng khác là vấn đề dữ liệu lớn của bạn thực chất là một số lượng lớn các vấn đề về dữ liệu nhỏ. Mỗi vấn đề riêng lẻ có thể nằm gọn trong trí nhớ, nhưng bạn có hàng triệu vấn đề như vậy. Ví dụ: bạn có thể muốn điều chỉnh mô hình cho từng người trong tập dữ liệu của mình. Sẽ là chuyện nhỏ nếu bạn chỉ có 10 hoặc 100 người, nhưng thay vào đó bạn có hàng triệu người. May mắn thay, mỗi vấn đề đều độc lập với những vấn đề khác (một cách thiết lập đôi khi được gọi là song song một cách đáng xấu hổ), vì vậy bạn chỉ cần một hệ thống (như Hadoop hoặc Spark) cho phép bạn gửi các bộ dữ liệu khác nhau đến các máy tính khác nhau để xử lý. Khi bạn đã tìm ra cách trả lời câu hỏi cho một tập hợp con bằng cách sử dụng các công cụ được mô tả trong cuốn sách này, bạn sẽ tìm hiểu các công cụ mới như sparklyr, rhipe và ddr để giải quyết câu hỏi đó cho toàn bộ tập dữ liệu.

1.3.2Python, Julia và những người bạn

Trong cuốn sách này, bạn sẽ không học bất cứ điều gì về Python, Julia hoặc bất kỳ ngôn ngữ lập trình nào hữu ích cho khoa học dữ liệu. Điều này không phải vì chúng tôi cho rằng những công cụ này không tốt. Họ không phải vậy! Và trên thực tế, hầu hết các nhóm khoa học dữ liệu đều sử dụng kết hợp nhiều ngôn ngữ, thường ít nhất là R và Python.

Tuy nhiên, chúng tôi tin tưởng mạnh mẽ rằng tốt nhất bạn nên thành thạo từng công cụ một. Bạn sẽ tiến bộ nhanh hơn nếu bạn đi sâu hơn, thay vì dàn trải quá nhiều chủ đề. Điều này không có nghĩa là bạn chỉ nên biết một điều, mà nói chung là bạn sẽ học nhanh hơn nếu bạn chỉ tập trung vào một điều tại một thời điểm. Bạn nên cố gắng học hỏi những điều mới trong suốt sự nghiệp của mình, nhưng hãy đảm bảo rằng sự hiểu biết của bạn vững chắc trước khi chuyển sang điều thú vị tiếp theo.

Chúng tôi nghĩ R là một nơi tuyệt vời để bắt đầu hành trình khoa học dữ liệu của bạn vì đây là môi trường được thiết kế ngay từ đầu để hỗ trợ khoa học dữ liệu. R không chỉ là ngôn ngữ lập trình mà còn là môi trường tương tác để thực hiện khoa học dữ liệu. Để hỗ trợ tương tác, R là ngôn ngữ linh hoạt hơn nhiều so với nhiều ngôn ngữ cùng loại. Tính linh hoạt này đi kèm với những nhược điểm, nhưng ưu điểm lớn là việc phát triển các ngữ pháp phù hợp cho các phần cụ thể của quy trình khoa học dữ liệu dễ dàng như thế nào. Những ngôn ngữ nhỏ này giúp bạn suy nghĩ về các vấn đề với tư cách là một nhà khoa học dữ liệu, đồng thời hỗ trợ sự tương tác trôi chảy giữa bộ não của bạn và máy tính.

1.3.3Dữ liệu không phải hình chữ nhật

Cuốn sách này chỉ tập trung vào dữ liệu hình chữ nhật: tập hợp các giá trị được liên kết với một biến và một quan sát. Có rất nhiều bộ dữ liệu không phù hợp một cách tự nhiên với mô hình này, bao gồm hình ảnh, âm thanh, cây cối và văn bản. Nhưng khung dữ liệu hình chữ nhật cực kỳ phổ biến trong khoa học và công nghiệp và chúng tôi tin rằng chúng là nơi tuyệt vời để bắt đầu hành trình khoa học dữ liệu của bạn.

1.3.4Xác nhận giả thuyết

Có thể chia phân tích dữ liệu thành hai phe: tạo giả thuyết và xác nhận giả thuyết (đôi khi được gọi là phân tích xác nhận). Trọng tâm của cuốn sách này hoàn toàn là việc tạo ra giả thuyết hoặc khám phá dữ liệu. Tại đây, bạn sẽ xem xét kỹ dữ liệu và kết hợp với kiến ​​thức chủ đề của mình, tạo ra nhiều giả thuyết thú vị để giúp giải thích lý do tại sao dữ liệu lại hoạt động như vậy. Bạn đánh giá các giả thuyết một cách không chính thức, sử dụng thái độ hoài nghi của mình để thách thức dữ liệu theo nhiều cách.

Sự bổ sung của việc tạo giả thuyết là xác nhận giả thuyết. Việc xác nhận giả thuyết là khó khăn vì hai lý do:

  1. Bạn cần một mô hình toán học chính xác để tạo ra những dự đoán có thể sai lệch. Điều này thường đòi hỏi sự phức tạp về mặt thống kê đáng kể.

  2. Bạn chỉ có thể sử dụng quan sát một lần để xác nhận một giả thuyết. Ngay sau khi bạn sử dụng nó nhiều lần, bạn sẽ quay lại thực hiện phân tích thăm dò. Điều này có nghĩa là để xác nhận giả thuyết, bạn cần phải “đăng ký trước” (viết ra trước) kế hoạch phân tích của mình và không đi chệch khỏi kế hoạch đó ngay cả khi bạn đã xem dữ liệu . Chúng ta sẽ nói một chút về một số chiến lược bạn có thể sử dụng để thực hiện việc này dễ dàng hơn trongngười mẫu.

Người ta thường coi mô hình hóa như một công cụ để xác nhận giả thuyết và trực quan hóa như một công cụ để tạo ra giả thuyết. Nhưng đó là một sự phân đôi sai lầm: các mô hình thường được sử dụng để khám phá và chỉ cần cẩn thận một chút, bạn có thể sử dụng hình ảnh trực quan để xác nhận. Sự khác biệt chính là tần suất bạn xem xét từng quan sát: nếu bạn chỉ nhìn một lần thì đó là sự xác nhận; nếu bạn nhìn nhiều lần, đó là sự khám phá.

1.4Điều kiện tiên quyết

Chúng tôi đã đưa ra một số giả định về những gì bạn đã biết để tận dụng tối đa cuốn sách này. Nhìn chung, bạn phải có kiến ​​thức về số và sẽ rất hữu ích nếu bạn đã có một số kinh nghiệm lập trình. Nếu bạn chưa từng lập trình trước đây, bạn có thể tìm thấyThực hành lập trình với Rcủa Garrett là tài liệu bổ sung hữu ích cho cuốn sách này.

Có bốn thứ bạn cần để chạy mã trong cuốn sách này: R, RStudio, một tập hợp các gói R được gọi làgọn gàng, và một số gói khác. Các gói là đơn vị cơ bản của mã R có thể tái tạo. Chúng bao gồm các hàm có thể tái sử dụng, tài liệu mô tả cách sử dụng chúng và dữ liệu mẫu.

1.4.1R

Để tải xuống R, hãy truy cập CRAN,ctoàn diệnR Mộtkho lưu trữNework. CRAN bao gồm một tập hợp các máy chủ nhân bản được phân phối trên toàn thế giới và được sử dụng để phân phối các gói R và R. Đừng cố chọn một chiếc gương gần bạn: thay vào đó hãy sử dụng gương đám mây,https://cloud.r-project.org, nó sẽ tự động tính toán cho bạn.

Một phiên bản chính mới của R xuất hiện mỗi năm một lần và có 2-3 phiên bản nhỏ mỗi năm. Đó là một ý tưởng tốt để cập nhật thường xuyên. Việc nâng cấp có thể hơi rắc rối, đặc biệt đối với các phiên bản chính yêu cầu bạn phải cài đặt lại tất cả các gói của mình, nhưng việc tắt nó đi chỉ khiến mọi việc trở nên tồi tệ hơn.

1.4.2RStudio

RStudio là môi trường phát triển tích hợp hay còn gọi là IDE dành cho lập trình R. Tải xuống và cài đặt nó từhttp://www.rstudio.com/download. RStudio được cập nhật vài lần một năm. Khi có phiên bản mới, RStudio sẽ cho bạn biết. Bạn nên nâng cấp thường xuyên để có thể tận dụng những tính năng mới nhất và tuyệt vời nhất. Đối với cuốn sách này, hãy đảm bảo bạn có ít nhất RStudio 1.0.0.

Khi khởi động RStudio, bạn sẽ thấy hai vùng chính trong giao diện:

1 Giới thiệu | R cho Khoa học dữ liệu (2)

Hiện tại, tất cả những gì bạn cần biết là nhập mã R vào khung bảng điều khiển và nhấn enter để chạy mã đó. Bạn sẽ tìm hiểu thêm khi chúng tôi đi cùng!

1.4.3sự gọn gàng

Bạn cũng sẽ cần cài đặt một số gói R. An Rbưu kiệnlà tập hợp các hàm, dữ liệu và tài liệu giúp mở rộng khả năng của cơ sở R. Sử dụng các gói là chìa khóa để sử dụng thành công R. Phần lớn các gói mà bạn sẽ học trong cuốn sách này là một phần của cái gọi là gọn gàng. Các gói trong gọn gàng chia sẻ triết lý chung về dữ liệu và lập trình R, đồng thời được thiết kế để hoạt động cùng nhau một cách tự nhiên.

Bạn có thể cài đặt Tidyverse hoàn chỉnh chỉ bằng một dòng mã:

cài đặt.gói("ngăn nắp")

Trên máy tính của bạn, nhập dòng mã đó vào bảng điều khiển, sau đó nhấn enter để chạy mã đó. R sẽ tải xuống các gói từ CRAN và cài đặt chúng vào máy tính của bạn. Nếu bạn gặp vấn đề khi cài đặt, hãy đảm bảo rằng bạn đã kết nối với Internet vàhttps://cloud.r-project.org/không bị chặn bởi tường lửa hoặc proxy của bạn.

Bạn sẽ không thể sử dụng các hàm, đối tượng và tệp trợ giúp trong một gói cho đến khi bạn tải nó bằngthư viện(). Khi bạn đã cài đặt một gói, bạn có thể tải nó bằngthư viện()chức năng:

thư viện(gọn gàng)#> -- Đính kèm các gói --------------------------------------- gọn gàng 1.3.1 - -#> v ggplot2 3.3.5 v purrr 0.3.4#> v tibble 3.1.4 v dplyr 1.0.7#> v gọn gàng 1.1.3 v chuỗi 1.4.0#> v readr 2.0.1 v forcats 0.5.1#> -- Xung đột ------------------------------------------ dọn dẹp_conflicts() --#> x dplyr::filter() mặt nạ stats::filter()#> x dplyr::lag() mặt nạ stats::lag()

Điều này cho bạn biết rằngtidyverse đang tải các gói ggplot2, tibble, Tibbler, readr, purrr và dplyr. Đây được coi là nhữngcốt lõicủa gọn gàng vì bạn sẽ sử dụng chúng trong hầu hết mọi phân tích.

Các gói trong cleanverse thay đổi khá thường xuyên. Bạn có thể xem liệu có bản cập nhật nào không và có thể tùy ý cài đặt chúng bằng cách chạygọn gàng_update().

1.4.4Các gói khác

Có nhiều gói tuyệt vời khác không thuộc về gọn gàng, vì chúng giải quyết các vấn đề trong một miền khác hoặc được thiết kế với một bộ nguyên tắc cơ bản khác. Điều này không làm cho họ tốt hơn hay tệ hơn, chỉ là khác biệt mà thôi. Nói cách khác, phần bổ sung cho vũ trụ gọn gàng không phải là vũ trụ lộn xộn mà là nhiều vũ trụ khác của các gói có liên quan với nhau. Khi giải quyết nhiều dự án khoa học dữ liệu hơn bằng R, bạn sẽ tìm hiểu các gói mới và cách suy nghĩ mới về dữ liệu.

Trong cuốn sách này, chúng tôi sẽ sử dụng ba gói dữ liệu từ bên ngoài Tidyverse:

cài đặt.gói(c("nycflights13","khoảng trống trí nhớ","Lahman"))

Các gói này cung cấp dữ liệu về các chuyến bay của hãng hàng không, sự phát triển thế giới và bóng chày mà chúng tôi sẽ sử dụng để minh họa các ý tưởng khoa học dữ liệu quan trọng.

1,5Chạy mã R

Phần trước đã cho bạn thấy một số ví dụ về chạy mã R. Mã trong cuốn sách trông như thế này:

1 + 2#> [1] 3

Nếu bạn chạy cùng một mã trong bảng điều khiển cục bộ, nó sẽ trông như thế này:

> 1 + 2[1] 3

Có hai sự khác biệt chính. Trong bảng điều khiển của bạn, bạn gõ sau>, được gọi làlời nhắc; chúng tôi không hiển thị lời nhắc trong sách. Trong cuốn sách, đầu ra được nhận xét với#>; trong bảng điều khiển của bạn, nó xuất hiện ngay sau mã của bạn. Hai điểm khác biệt này có nghĩa là nếu bạn đang làm việc với phiên bản điện tử của sách, bạn có thể dễ dàng sao chép mã ra khỏi sách và vào bảng điều khiển.

Xuyên suốt cuốn sách, chúng tôi sử dụng một bộ quy ước nhất quán để đề cập đến mã:

  • Các hàm có phông chữ mã và theo sau là dấu ngoặc đơn, nhưTổng(),hoặcnghĩa là().

  • Các đối tượng R khác (như đối số dữ liệu hoặc hàm) có phông chữ mã, không có dấu ngoặc đơn, nhưchuyến bayhoặcx.

  • Nếu chúng ta muốn làm rõ một đối tượng đến từ gói nào, chúng ta sẽ sử dụng tên gói theo sau là hai dấu hai chấm, nhưdplyr::mutate(), hoặc
    nycflights13::chuyến bay. Đây cũng là mã R hợp lệ.

1.6Nhận trợ giúp và tìm hiểu thêm

Cuốn sách này không phải là một hòn đảo; không có nguồn tài nguyên nào cho phép bạn thành thạo R. Khi bạn bắt đầu áp dụng các kỹ thuật được mô tả trong cuốn sách này vào dữ liệu của riêng mình, bạn sẽ sớm tìm thấy những câu hỏi mà chúng tôi không trả lời. Phần này mô tả một số mẹo về cách nhận trợ giúp và giúp bạn tiếp tục học tập.

Nếu bạn gặp khó khăn, hãy bắt đầu với Google. Thông thường, việc thêm “R” vào một truy vấn là đủ để hạn chế truy vấn đó ở các kết quả có liên quan: nếu tìm kiếm không hữu ích, điều đó thường có nghĩa là không có bất kỳ kết quả cụ thể nào về R. Google đặc biệt hữu ích đối với các thông báo lỗi. Nếu bạn nhận được thông báo lỗi và bạn không biết nó có nghĩa gì, hãy thử tìm kiếm trên Google! Rất có thể trước đây người khác đã nhầm lẫn về vấn đề này và sẽ có trợ giúp ở đâu đó trên web. (Nếu thông báo lỗi không phải bằng tiếng Anh, hãy chạySys.setenv(LANGUAGE = "en")và chạy lại mã; bạn có nhiều khả năng tìm thấy trợ giúp cho các thông báo lỗi tiếng Anh hơn.)

Nếu Google không giúp được, hãy thửngăn xếp. Bắt đầu bằng cách dành một chút thời gian để tìm kiếm câu trả lời hiện có, bao gồm[R]để hạn chế tìm kiếm của bạn ở những câu hỏi và câu trả lời sử dụng R. Nếu bạn không tìm thấy điều gì hữu ích, hãy chuẩn bị một ví dụ có thể tái tạo tối thiểu hoặcreprex. Một người đại diện tốt sẽ giúp người khác giúp đỡ bạn dễ dàng hơn và thường thì bạn sẽ tự mình tìm ra vấn đề trong quá trình thực hiện nó.

Có ba điều bạn cần đưa vào để làm cho ví dụ của bạn có thể lặp lại: các gói, dữ liệu và mã bắt buộc.

  1. Góinên được tải ở đầu tập lệnh, vì vậy thật dễ dàng để biết ví dụ nào cần. Đây là thời điểm tốt để kiểm tra xem bạn có đang sử dụng phiên bản mới nhất của mỗi gói hay không; có thể bạn đã phát hiện ra một lỗi đã được sửa kể từ khi bạn cài đặt gói này. Đối với các gói trong gọn gàng, cách dễ nhất để kiểm tra là chạygọn gàng_update().

  2. Cách dễ nhất để bao gồmdữ liệutrong một câu hỏi là sử dụngdput()tạo mã R để tạo lại nó. Ví dụ, để tạo lạixe mtcartập dữ liệu trong R, tôi sẽ thực hiện các bước sau:

    1. Chạydput(mtcars)trong R
    2. Sao chép đầu ra
    3. Trong tập lệnh có thể tái tạo của tôi, hãy nhậpxe mtcar <-sau đó dán.

    Hãy thử và tìm tập hợp con nhỏ nhất trong dữ liệu của bạn mà vẫn bộc lộ vấn đề.

  3. Hãy dành một chút thời gian để đảm bảo rằngmã sốngười khác dễ dàng đọc được:

    • Hãy đảm bảo rằng bạn đã sử dụng dấu cách và tên biến của bạn ngắn gọn nhưng đầy đủ thông tin.

    • Sử dụng nhận xét để chỉ ra vấn đề của bạn nằm ở đâu.

    • Hãy cố gắng hết sức để loại bỏ mọi thứ không liên quan đến vấn đề.
      Mã của bạn càng ngắn thì càng dễ hiểu và càng dễ sửa.

Kết thúc bằng cách kiểm tra xem bạn đã thực sự tạo một ví dụ có thể tái tạo hay chưa bằng cách bắt đầu một phiên R mới rồi sao chép và dán tập lệnh của bạn vào.

Bạn cũng nên dành chút thời gian chuẩn bị cho mình cách giải quyết vấn đề trước khi chúng xảy ra. Đầu tư một chút thời gian vào việc học R mỗi ngày sẽ mang lại kết quả xứng đáng về lâu dài. Một cách là làm theo những gì Hadley, Garrett và mọi người khác ở RStudio đang làm trênBlog RStudio. Đây là nơi chúng tôi đăng thông báo về các gói mới, tính năng IDE mới và các khóa học trực tiếp. Bạn cũng có thể muốn theo dõi Hadley (@hadleywickham) hoặc Garrett (@statgarrett) trên Twitter hoặc theo dõi@rstudiotipsđể cập nhật các tính năng mới trong IDE.

Để theo kịp cộng đồng R một cách rộng rãi hơn, chúng tôi khuyên bạn nên đọchttp://www.r-bloggers.com: nó tổng hợp hơn 500 blog về R từ khắp nơi trên thế giới. Nếu bạn là người dùng Twitter tích cực, hãy làm theo (#rstats) dấu thăng. Twitter là một trong những công cụ quan trọng mà Hadley sử dụng để theo kịp những phát triển mới trong cộng đồng.

1.7Sự nhìn nhận

Cuốn sách này không chỉ là sản phẩm của Hadley và Garrett mà còn là kết quả của nhiều cuộc trò chuyện (trực tiếp và trực tuyến) mà chúng tôi đã có với nhiều người trong cộng đồng R. Có một số người mà chúng tôi đặc biệt muốn cảm ơn vì họ đã dành nhiều giờ để trả lời những câu hỏi ngớ ngẩn của chúng tôi và giúp chúng tôi suy nghĩ tốt hơn về khoa học dữ liệu:

  • Jenny Bryan và Lionel Henry vì nhiều cuộc thảo luận hữu ích xung quanh việc làm việc với danh sách và cột danh sách.

  • Ba chương về quy trình làm việc đã được điều chỉnh (với sự cho phép), từhttp://stat545.com/block002_hello-r-workspace-wd-project.htmlcủa Jenny Bryan.

  • Genevera Allen đã thảo luận về các mô hình, mô hình hóa, quan điểm học tập thống kê và sự khác biệt giữa việc tạo ra giả thuyết và xác nhận giả thuyết.

  • Yihui Xie vì công việc của anh ấy trêngiảm giá sáchgói và đáp ứng không mệt mỏi các yêu cầu tính năng của tôi.

  • Bill Behrman vì đã đọc kỹ toàn bộ cuốn sách và đã thử nó với lớp khoa học dữ liệu của mình tại Stanford.

  • Cộng đồng twitter #rstats đã xem xét tất cả các chương dự thảo và cung cấp rất nhiều phản hồi hữu ích.

  • Tal Galili đã tăng cường gói dendextend của mình để hỗ trợ một phần về phân cụm chưa được đưa vào bản thảo cuối cùng.

Cuốn sách này được viết công khai và nhiều người đã đóng góp các yêu cầu kéo để khắc phục các vấn đề nhỏ. Lời cảm ơn đặc biệt đến tất cả những người đã đóng góp qua GitHub:

Xin cảm ơn tất cả những người đóng góp theo thứ tự bảng chữ cái: @,@a-rosenberg, A. s, Abhinav Singh, adi pradhan, Ahmed ElGabbas, Ajay Deonarine,@AlanFeder, Albert Y. Kim,@Alex, Andrea Gilardi, Andrew Landgraf,@andrewmacfarland, Angela Li, Azza Ahmed, Bahadir Cankardes,@batpigandme,@behrman, Ben Herbertson, Ben Marwick, Ben Steinberg, Benjamin Yeh, Bianca Peterson, Bill Behrman,@BirgerNi,@boardtc, Brandon Greenwell, Brent Brewington, Brett Klamer, Brian G. Barkley, Charlotte Wickham, Christian G. Warden, Christian Heinrich, Christian Mongeau, Colin Gillespie, Cooper Morris, Curtis Alexander, Daniel Gromer, David Clark, David Rubinger, Derwin McGeary, Devin Pastoor, Dirk Eddelbuettel,@djbirke,@DSGeoff, Dylan Cashman, Earl Brown, Edwin Thoen, Eric Watt, Erik Erhardt, Etienne B. Racine, Everett Robinson, Flemming Villalona, ​​Floris Vanderhaeghe, Garrick Aden-Buie, George Wang, Gregory Jefferis, Gustav W Delius, Hao Chen,@harrismcgeheeIan Lyttle, Ian Sealy, Ivan Krukov, Jacek Kolacz, Jacob Kaplan, Jakub Nowosad, Jazz Weisman, Jeff Boichuk, Jeffrey Arnold, Jen Ren, Jennifer (Jenny) Bryan,@jennybc, Jeroen Janssens, Jim Hester,@jjchern, Joanne Jang, Johannes Gruber, John Blischak, John D. Storey, John Sears, Jon Calder,@Jonas, Trang Jonathan,@jonathanflint, Jose Roberto Ayala Solares, Josh Goldberg,@juandering, Julia Stewart Lowndes, Julian Trong, Justinas Petuchovas,@kaetschap, Kara de la Marck, Kara Woo, Katherine Leinweber,@kdpsingh, Kenny Darrell, Kirill Müller, Kirill Sevastyanenko,@koalabearski, Kunal Marwaha,@KyleHumphrey, Lawrence Wu,@lindbrook, Luke Smith, Luke W Johnston, Mara Averick, Maria Paula Caldas, Mark Beveridge, Matt Herman, Matthew Hendrickson, Matthew Sedaghatfar,@MattWittbrodt, Mauro Lepore, Michael Henry, Mine Cetinkaya-Rundel,@MJMarshallMustafa Ascha,@nate-d-olson,@nattalides, Khu vực Nelson, Nicholas Tierney, Nick Clark,@nickelas, Nina Munkholt Jakobsen, Nirmal Patel, Nischal Shrestha, Noah Landesberg,@nwaff,@OaCantona, Pablo E, Patrick Kennedy,@Paul,@pete, Peter Hurford, Rademeyer Vermaak, Radu Grosu, Ranae Dietzel, Riva Quiroga,@rlzijdeman, Rob Tenorio, Robert Schuessler,@robertchu03, Robin Gertenbach,@robinlovelace,@robinsones, Rohan Alexander,@RomeroBarata, Phước lành Mkhondwane,@Saghir,Sam Firke,@seamus-mckinsey, Seamus McKinsey,@seanpwilliams, Sebastian Kraus, Shannon Ellis,@shoili,@sibusiso16,@Sophiazj,@spirgel, Stéphane Guillou, Steve Mortimer,@svenski, Tal Galili , Terence Theo , Thomas Klebel , Tim Waterhouse , TJ Mahr , Tom Prior@twgardner2, Ulrik Lyngs, Will Beasley,@yahwes, Yihui Xie, Yiming (Paul) Li, Yu Yu Aung, Zach Bogart,@zeal626, Trác Nhi Đồng.

1.8colophon

Phiên bản trực tuyến của cuốn sách này có sẵn tạihttp://r4ds.had.co.nz. Nó sẽ tiếp tục phát triển giữa các lần tái bản của sách vật lý. Nguồn của cuốn sách có sẵn tạihttps://github.com/hadley/r4ds. Cuốn sách được cung cấp bởihttps://bookdown.orggiúp dễ dàng biến các tệp đánh dấu R thành HTML, PDF và EPUB.

Cuốn sách này được xây dựng với:

thông tin phiên::thông tin phiên(c("ngăn nắp"))#> - Thông tin phiên --------------------------------------------- ------------------#> giá trị cài đặt#> phiên bản R phiên bản 4.1.1 (2021-08-10)#> hệ điều hành Windows 10 x64#> hệ thống x86_64, mingw32#> ui RTerm#> ngôn ngữ (EN)#> đối chiếu English_United States.1252#> ctype English_United States.1252#> tz Mỹ/New_York#> ngày 2021-09-07#>#> - Gói ---------------------------------------------- ---------------------#> gói * ngày phiên bản nguồn lib#> Askpass 1.1 2019-01-13 [1] CRAN (R 4.1.0)#> khẳng định rằng 0.2.1 2019-03-21 [1] CRAN (R 4.1.0)#> backport 1.2.1 2020-12-09 [1] CRAN (R 4.1.0)#> base64enc 0.1-3 28-07-2015 [1] CRAN (R 4.1.0)#> bit 4.0.4 2020-08-04 [1] CRAN (R 4.1.0)#> bit64 4.0.5 2020-08-30 [1] CRAN (R 4.1.0)#> blob 1.2.2 2021-07-23 [1] CRAN (R 4.1.0)#> chổi 0.7.9 2021-07-27 [1] CRAN (R 4.1.0)#> người gọi 3.7.0 2021-04-20 [1] CRAN (R 4.1.0)#> cellranger 1.1.0 2016-07-27 [1] CRAN (R 4.1.0)#> cli 3.0.1 2021-07-17 [1] CRAN (R 4.1.0)#> clipr 0.7.1 2020-10-08 [1] CRAN (R 4.1.0)#> không gian màu 2.0-2 2021-06-24 [1] CRAN (R 4.1.0)#> cpp11 0.3.1 2021-06-25 [1] CRAN (R 4.1.0)#> bút chì màu 1.4.1 2021-02-08 [1] CRAN (R 4.1.0)#> cuộn tròn 4.3.2 2021-06-23 [1] CRAN (R 4.1.0)#> data.table 1.14.0 2021-02-21 [1] CRAN (R 4.1.0)#> DBI 1.1.1 2021-01-15 [1] CRAN (R 4.1.0)#> dbplyr 2.1.1 2021-04-06 [1] CRAN (R 4.1.0)#> thông báo 0.6.27 2020-10-24 [1] CRAN (R 4.1.0)#> dplyr * 1.0.7 2021-06-18 [1] CRAN (R 4.1.0)#> dtplyr 1.1.0 2021-02-20 [1] CRAN (R 4.1.0)#> dấu chấm lửng 0.3.2 2021-04-29 [1] CRAN (R 4.1.0)#> đánh giá 0,14 28-05-2019 [1] CRAN (R 4.1.0)#> fansi 0.5.0 2021-05-25 [1] CRAN (R 4.1.0)#> màu 2.1.0 2021-02-28 [1] CRAN (R 4.1.0)#> fastmap 1.1.0 2021-01-25 [1] CRAN (R 4.1.0)#> forcats * 0.5.1 2021-01-27 [1] CRAN (R 4.1.0)#> fs 1.5.0 2020-07-31 [1] CRAN (R 4.1.0)#> súc miệng 1.2.0 2021-07-02 [1] CRAN (R 4.1.0)#> thuốc generic 0.1.0 2020-10-31 [1] CRAN (R 4.1.0)#> ggplot2 * 3.3.5 2021-06-25 [1] CRAN (R 4.1.0)#> keo 1.4.2 2020-08-27 [1] CRAN (R 4.1.0)#> googledrive 2.0.0 2021-07-08 [1] CRAN (R 4.1.0)#> googlesheets4 1.0.0 2021-07-21 [1] CRAN (R 4.1.0)#> gtable 0.3.0 2019-03-25 [1] CRAN (R 4.1.0)#> thiên đường 2.4.3 2021-08-04 [1] CRAN (R 4.1.0)#> cao hơn 0,9 2021-04-16 [1] CRAN (R 4.1.0)#> hms 1.1.0 2021-05-17 [1] CRAN (R 4.1.0)#> htmltools 0.5.2 2021-08-25 [1] CRAN (R 4.1.1)#> httr 1.4.2 2020-07-20 [1] CRAN (R 4.1.0)#> id 1.0.1 2017-05-31 [1] CRAN (R 4.1.0)#> isoband 0.2.5 2021-07-13 [1] CRAN (R 4.1.0)#> jsonlite 1.7.2 2020-12-09 [1] CRAN (R 4.1.0)#> knitr 1.33 2021-04-24 [1] CRAN (R 4.1.0)#> ghi nhãn 0.4.2 2020-10-20 [1] CRAN (R 4.1.0)#> lưới 0,20-44 2021-05-02 [1] CRAN (R 4.1.0)#> vòng đời 1.0.0 2021-02-15 [1] CRAN (R 4.1.0)#> bôi trơn 1.7.10 2021-02-26 [1] CRAN (R 4.1.0)#> magrittr 2.0.1 2020-11-17 [1] CRAN (R 4.1.0)#> giảm giá 1.1 2019-08-07 [1] CRAN (R 4.1.0)#> KHỐI LƯỢNG 7.3-54 2021-05-03 [1] CRAN (R 4.1.0)#> Ma trận 1.3-4 2021-06-01 [1] CRAN (R 4.1.0)#> mgcv 1.8-36 2021-06-01 [1] CRAN (R 4.1.0)#> mime 0.11 2021-06-23 [1] CRAN (R 4.1.0)#> modelr 0.1.8 2020-05-19 [1] CRAN (R 4.1.0)#> munsell 0.5.0 2018-06-12 [1] CRAN (R 4.1.0)#> nlme 3.1-152 2021-02-04 [1] CRAN (R 4.1.0)#> openssl 1.4.4 2021-04-30 [1] CRAN (R 4.1.0)#> trụ cột 1.6.2 2021-07-29 [1] CRAN (R 4.1.0)#> pkgconfig 2.0.3 2019-09-22 [1] CRAN (R 4.1.0)#> beautifulunits 1.1.1 2020-01-24 [1] CRAN (R 4.1.0)#> processx 3.5.2 2021-04-30 [1] CRAN (R 4.1.0)#> tiến trình 1.2.2 2019-05-16 [1] CRAN (R 4.1.0)#> ps 1.6.0 2021-02-28 [1] CRAN (R 4.1.0)#> gừ gừ * 0.3.4 2020-04-17 [1] CRAN (R 4.1.0)#> R6 2.5.1 2021-08-19 [1] CRAN (R 4.1.1)#> rappdirs 0.3.3 2021-01-31 [1] CRAN (R 4.1.0)#> RColorBrewer 1.1-2 2014-12-07 [1] CRAN (R 4.1.0)#> Rcpp 1.0.7 2021-07-07 [1] CRAN (R 4.1.0)#> readr * 2.0.1 2021-08-10 [1] CRAN (R 4.1.1)#> readxl 1.3.1 2019-03-13 [1] CRAN (R 4.1.0)#> tái đấu 1.0.1 2016-04-21 [1] CRAN (R 4.1.0)#> rematch2 2.1.2 2020-05-01 [1] CRAN (R 4.1.0)#> reprex 2.0.1 2021-08-05 [1] CRAN (R 4.1.0)#> rlang 0.4.11 2021-04-30 [1] CRAN (R 4.1.0)#> rmarkdown 2.10 2021-08-06 [1] CRAN (R 4.1.0)#> rstudioapi 0.13 2020-11-12 [1] CRAN (R 4.1.0)#> rvest 1.0.1 2021-07-26 [1] CRAN (R 4.1.0)#> thang đo 1.1.1 2020-05-11 [1] CRAN (R 4.1.0)#> bộ chọn 0.4-2 2019-11-20 [1] CRAN (R 4.1.0)#> stringi 1.7.4 2021-08-25 [1] CRAN (R 4.1.1)#> stringr * 1.4.0 2019-02-10 [1] CRAN (R 4.1.0)#> sys 3.4 2020-07-23 [1] CRAN (R 4.1.0)#> tibble * 3.1.4 2021-08-25 [1] CRAN (R 4.1.1)#> dọn dẹp * 1.1.3 2021-03-03 [1] CRAN (R 4.1.0)#> dọn dẹp chọn 1.1.1 2021-04-30 [1] CRAN (R 4.1.0)#> gọn gàng * 1.3.1 2021-04-15 [1] CRAN (R 4.1.0)#> tinytex 0.33 2021-08-05 [1] CRAN (R 4.1.0)#> tzdb 0.1.2 2021-07-20 [1] CRAN (R 4.1.0)#> utf8 1.2.2 2021-07-24 [1] CRAN (R 4.1.0)#> uuid 0.1-4 2020-02-26 [1] CRAN (R 4.1.0)#> vctrs 0.3.8 2021-04-29 [1] CRAN (R 4.1.0)#> viridisLite 0.4.0 2021-04-13 [1] CRAN (R 4.1.0)#> vroom 1.5.4 2021-08-05 [1] CRAN (R 4.1.0)#> withr 2.4.2 2021-04-18 [1] CRAN (R 4.1.0)#> xfun 0.25 2021-08-06 [1] CRAN (R 4.1.0)#> xml2 1.3.2 2020-04-23 [1] CRAN (R 4.1.0)#> yaml 2.2.1 2020-02-01 [1] CRAN (R 4.1.0)#>#> [1] C:/Users/DAV49/OneDrive - Đại học Pittsburgh/Documents/R/win-library/4.1#> [2] C:/Tệp chương trình/R/R-4.1.1/thư viện
1 Giới thiệu | R cho Khoa học dữ liệu (2024)
Top Articles
Latest Posts
Article information

Author: Otha Schamberger

Last Updated:

Views: 6014

Rating: 4.4 / 5 (75 voted)

Reviews: 82% of readers found this page helpful

Author information

Name: Otha Schamberger

Birthday: 1999-08-15

Address: Suite 490 606 Hammes Ferry, Carterhaven, IL 62290

Phone: +8557035444877

Job: Forward IT Agent

Hobby: Fishing, Flying, Jewelry making, Digital arts, Sand art, Parkour, tabletop games

Introduction: My name is Otha Schamberger, I am a vast, good, healthy, cheerful, energetic, gorgeous, magnificent person who loves writing and wants to share my knowledge and understanding with you.