R cho Khoa học dữ liệu (2e) (2024)

Khoa học dữ liệu là một môn học thú vị cho phép bạn chuyển đổi 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 một cách hiệu quả và có thể tái tạo, đồng thời mang lại niềm vui trong quá trình thực hiện 😃. 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 hay nhất của R.

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

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

R cho Khoa học dữ liệu (2e) (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 không thể đưa dữ liệu của mình vào R, bạn có thể Đừng 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ữ dữ liệu đó ở 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 lưu trữ dữ liệu đó. 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 việc trả lời các câu hỏi về dữ liệu mà 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 phổ biến tiếp theo 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ả mọi người 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 số liệu thống kê tóm tắt (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 nhaubở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, vì vậy bất kỳ phân tích dữ liệu 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 đặt 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 chú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. Các mô hình về cơ bản là các công cụ toán học hoặc tính toán, vì vậy 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 hầu hết mọi phần của dự án khoa học dữ liệu. Bạn không cần phải là một lập trình viên chuyên nghiệp để trở thành một nhà khoa học dữ liệu thành công, 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 chúng không đủ cho hầu hết các dự án. Có một quy tắc 80/20 cơ bản: bạn có thể giải quyết khoảng 80% mọi dự án bằng cách sử dụng những công cụ bạn sẽ học trong cuốn sách này, nhưng bạn sẽ cần những 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.

Cuố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, việc học cách nhập và sắp xếp dữ liệu trước tiên 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. Bằng cách đó, khi bạn tiếp thu và sắp xếp dữ liệu của riêng mình, động lực của bạn sẽ luôn cao vì bạn biết rằng nỗi đau đó là xứng đáng với nỗ lực.

Trong mỗi chương, chúng tôi cố gắng tuân theo một khuôn mẫu nhất quán: 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 có thể 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ế.

Nhữ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.

Làm người mẫu

Việc lập mô hình là cực kỳ quan trọng đối với khoa học dữ liệu, nhưng đây là một chủ đề lớn và thật không may, chúng tôi không có đủ không gian để cung cấp cho nó phạm vi bao quát mà nó xứng đáng có được ở đây. Để tìm hiểu thêm về mô hình hóa, chúng tôi khuyên bạn nênLập mô hình gọn gàng với Rbởi các đồng nghiệp của chúng tôi Max Kuhn và Julia Silge. Cuốn sách này sẽ dạy cho bạn về dòng gói gọn gàng, như bạn có thể đoán từ cái tên, chúng chia sẻ nhiều quy ước với các gói gọn gàng mà chúng tôi sử dụng trong cuốn sách này.

Dữ liệu lớn

Cuốn sách này tự hào và chủ yếu 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 sẽ tìm hiểu trong phần lớn cuốn sách này sẽ dễ dàng xử lý hàng trăm megabyte dữ liệu và nếu 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 một vài gigabyte dữ liệu. Chúng tôi cũng sẽ chỉ cho bạn cách lấy dữ liệu ra khỏi cơ sở dữ liệu và tệp sàn gỗ, cả hai đều thường được sử dụng để lưu trữ dữ liệu lớn. Bạn không nhất thiết phải làm việc với toàn bộ tập dữ liệu, nhưng đó không phải là vấn đề vì bạn chỉ cần một tập hợp con hoặc mẫu phụ để trả lời câu hỏi mà bạn quan tâm.

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), chúng tôi khuyên bạn nên tìm hiểu thêm vềbảng dữ liệu. Chúng tôi không dạy nó ở đây vì nó sử dụng giao diện khác với gọn gàng và yêu cầu bạn tìm hiểu một số quy ước khác nhau. Tuy nhiên, nó cực kỳ nhanh hơn và hiệu quả mang lại đáng để bạn đầu tư thời gian tìm hiểu nếu bạn đang làm việc với dữ liệu lớn.

Python, 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. Nhưng 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 và R là nơi tuyệt vời để bắt đầu.

Đ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 cơ bản. 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 có giá trị cho cuốn sách này.

Bạn cần bốn thứ để 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.

R

Để tải xuống R, hãy truy cập CRAN,ctoàn diệnR Mộtkho lưu trữNcông việc,https://cloud.r-project.org. 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 cài đặt lại tất cả các gói của mình, nhưng việc trì hoãn việc nâng cấp chỉ khiến mọi việc trở nên tồi tệ hơn. Chúng tôi khuyên dùng R 4.2.0 trở lên cho cuốn sách này.

RStudio

RStudio là môi trường phát triển tích hợp hoặc IDE dành cho lập trình R mà bạn có thể tải xuống từhttps://posit.co/download/rstudio-desktop/. RStudio được cập nhật vài lần trong năm và nó sẽ tự động cho bạn biết khi nào có phiên bản mới, do đó bạn không cần phải kiểm tra lại. Bạn nên nâng cấp thường xuyên để tận dụng các 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 2022.02.0.

Khi bạn khởi động RStudio,Hình 2, bạn sẽ thấy hai vùng chính trong giao diện: khung bảng điều khiển và khung đầu ra. 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

R cho Khoa học dữ liệu (2e) (2)

sự 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. Tất cả các gói trong gọn gàng đều có chung triết lý về dữ liệu và lập trình R và được thiết kế để hoạt động cùng nhau.

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, rồi nhấn enter để chạy mã đó. R sẽ tải xuống các gói từ CRAN và cài đặt chúng trên máy tính của bạn.

Bạn sẽ không thể sử dụng các hàm, đối tượng hoặc 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ằng cách sử dụngthư viện()chức năng:

thư viện(gọn gàng)#> ── Gắn các gói gọn gàng lõi ───────────────────── Tidyverse 2.0.0 ──#> ✔ dplyr 1.1.4 ✔ readr 2.1.5#> ✔ forcats 1.0.0 ✔ stringr 1.5.1#> ✔ ggplot2 3.5.0 ✔ tibble 3.2.1#> ✔ bôi trơn 1.9.3 ✔ dọn dẹp 1.3.1#> ✔ gừ gừ 1.0.2#> ── Xung đột ───────────────────────────────────── ── stirverse_conflicts() ──#> ✖ dplyr::filter() che dấu stats::filter()#> ✖ dplyr::lag() che dấu stats::lag()#> ℹ Sử dụng gói bị xung đột () để buộc tất cả các xung đột trở thành lỗi

Điều này cho bạn biết rằngtidyverse tải chín gói: dplyr, forcats, ggplot2, lubridate, purrr, readr, stringr, tibble, stirr. Đâ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 bằng cách chạygọn gàng_update().

Cá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 họ tốt hơn hay tệ hơn; nó chỉ làm cho họ khác biệt. Nói cách khác, phần bổ sung cho 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.

Chúng ta sẽ sử dụng nhiều gói từ bên ngoài đối tượng gọn gàng trong cuốn sách này. Ví dụ: chúng tôi sẽ sử dụng các gói sau vì chúng cung cấp các bộ dữ liệu thú vị để chúng tôi làm việc trong quá trình học R:

cài đặt.gói( c("mũi tên","tên của em bé","Xoăn","vịtdb","khoảng trống trí nhớ", "ggrepel","gridges","ggtheme","hexbin","người gác cổng","Lahman", "tờ rơi","bản đồ","nycflights13","openxlsx","chim cánh cụt palmer", "tái phát","mô hình gọn gàng","writexl") )

Chúng tôi cũng sẽ sử dụng một số gói khác để làm ví dụ. Bạn không cần phải cài đặt chúng ngay bây giờ, chỉ cần nhớ rằng bất cứ khi nào bạn gặp lỗi như thế này:

thư viện(ggrpel)#> Lỗi trong thư viện(ggrepel): không có gói nào có tên 'ggrepel'

Bạn cần phải chạyinstall.packages("ggrepel")để cài đặt gói.

Chạ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à dán 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 hiển thị bằng 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 (chẳng hạn 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.

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

Sự nhìn nhận

Cuốn sách này không chỉ là sản phẩm của Hadley, Mine 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. Chúng tôi vô cùng biết ơn về tất cả những cuộc trò chuyện mà chúng tôi đã có với các bạn; Cảm ơn bạn rất nhiều!

Cuốn sách này được viết công khai và có nhiều người đóng góp thông qua các yêu cầu kéo. Xin gửi lời cảm ơn đặc biệt đến tất cả 259 bạn đã đóng góp cải tiến thông qua yêu cầu kéo GitHub (theo thứ tự bảng chữ cái theo tên người dùng): , adi pradhan (@adidoit), A. s. (@Adrianzo), Aep Hidyatuloh (@aephidayatuloh), Andrea Gilardi (@eagle5), Ajay Deonarine (@ajay-d), @AlanFeder, Daihe Sui (@alansuidaihe), @alberto-cut, @AlbertRapp, @aleloi, one @alonzi, Alex (@ALShum), Andrew M. (@amacfarland), Andrew Landgraf (@andland), @andyhuynh92, Angela Li (@angela-li), Antti Rask (@AnttiRask), LOU Xun (@aquarhead). ), @ariespirgel, @august-18, Michael Henry (@aviast), Azza Ahmed (@azzaea), Steven Moran (@bambooforest), Brian G. Barkley (@BarkleyBG), Mara Averick (@batpigandme), Oluwafemi OYEDELE ( @BB1464), Brent Brewington (@bbrewington), Bill Behrman (@behrman), Ben Herbertson (@benherbertson), Ben Marwick (@benmarwick), Ben Steinberg (@bensteinberg), Benjamin Yeh (@bentyeh), Betul Turkoglu (@bensteinberg) Betulturkoglu, Brandon Greenwell (@bgreenwell), Bianca Peterson (@BinxiePeterson), Birger Niklas (@BirgerNi), Brett Klamer (@bklamer), @boardtc, Christian (@c-hoh), Caddy (@caddycarine), Camille V Leonard (@camillevleonard), @canovasjm, Cedric Batailler (@cedricbatailler), Christina Wei (@christina-wei), Christian Mongeau (@chrMongeau), Cooper Morris (@coopermor), Colin Gillespie (@csgillespie), Rademeyer Vermaak (@ csrvermaak ), Chloe Thierstein (@cthierst), Chris Saunders (@ctsa), Abhinav Singh (@curious-abhinav), Curtis Alexander (@curtisalexander), Christian G. Warden (@cwarden), Charlotte Wickham (@cwickham), Kenny Darrell (@darrkj), David Kane (@davidkane9), David (@davidrsch), David Rubinger (@davidrubinger), David Clark (@DDClark), Derwin McGeary (@derwinmcgeary), Daniel Gromer (@dgromer), @Divider85, @ djbirke, Danielle Navarro (@djnavarro), Russell Shean (@DOH-RPS1303), Zhuoer Dong (@dongzhuoer), Devin Pastoor (@dpastoor), @DSGeoff, Devarshi Thakkar (@dthakkar09), Julian Trong (@duju211), Dylan Nhân viên thu ngân (@dylancashman), Dirk Eddelbuettel (@eddelbuettel), Edwin Thoen (@EdwinTh), Ahmed El-Gabbas (@elgabbas), Henry Webel (@enryH), Ercan Karadas (@ercan7), Eric Kitaif (@EricKit) , Eric Watt (@ericwatt), Eric Erhardt (@erikerhardt), Stephen B. Racine (@etiennebr), Everett Robinson (@evjrob), @fellennert, Flemming Miguel (@flemmingmiguel), Floris Vanderhaeghe (@florisvdh), @funkybluehen , @gabrivera, Garrick Aden-Buie (@gadenbuie), Peter Ganong (@ganong123), Gerome Meyer (@GeroVanMi), Gleb Ebert (@gl-eb), Josh Goldberg (@GoldbergData), Bahadir Cankardes (@gridgrad), Gustav W Delius (@gustavdelius), Hao Chen (@hao-trivago), Harris McGehee (@harrismcgehee), @hendrikweisser, Hengni Cai (@hengnicai), Iain (@Iain-S), Ian Sealy (@iansealy), Ian Lyttle (@ijlyttle), Ivan Krukov (@ivan-krukov), Jacob Kaplan (@jacobkap), Jazz Weisman (@jazzlw), John Blischak (@jdblischak), John D. Storey (@jdstory), Gregory Jefferis (@jefferis) . ), Jeffrey Stevens (@JeffreyRStevens), Jenny (@JeldorPKU), Jennifer (Jenny) Bryan (@jennybc), Jen Ren (@jenren), Jeroen Janssens (@jeroenjanssens), @jeromecholewa, Janet Wesner (@jilmun), Jim Hester (@jimhester), JJ Chen (@jjchern), Jacek Kolacz (@jkolacz), Joanne Jang (@joannejang), @johannes4998, John Sears (@johnsears), @jonathanflint, Jon Calder (@jonmcalder), Jonathan Page ( @jonpage, Jon Harmon (@jonthegeek), JooYoung Seo (@jooyoungseo), Justinas Petuchovas (@jpetuchovas), Jordan (@jrdnbradford), Jeffrey Arnold (@jrnold), Jose Roberto Ayala Solares (@jroberayalas), Joyce Robbins ( @jtr13, @juandering, Julia Stewart Lowndes (@jules32), Sonja (@kaetschap), Kara Woo (@karawoo), Katrin Leinweber (@katrinleinweber), Karandeep Singh (@kdpsingh), Kevin Perese (@kevinxperese), Kevin Ferris (@kferris10), Kirill Sevastyanenko (@kirillseva), Jonathan Kitt (@KittJonathan), @koalabearski, Kirill Muller (@krlmlr), Rafał Kucharsky (@kucharsky), Kevin Wright (@kwstat), Noah Landesberg (@landesbergn) , Lawrence Wu (@lawwu), @lindbrook, Luke W Johnston (@lwjohnst86), Kara de la Marck (@MarckK), Kunal Marwaha (@marwahaha), Matthias Liew (@matanhakim), Matthias Liew (@MatthiasLiew), Matt Wittbrodt (@MattWittbrodt), Mauro Lepore (@maurolepore), Mark Beveridge (@mbveridge), @mcewenkhundi, mcsnowface, PhD (@mcsnowface), Matt Herman (@mfherman), Michael Boerman (@michaelboerman), Mitsuo Shiota (@mitsuoxv) . ), Matthew Hendrickson (@mjhendrickson), @MJMarshall, Misty Knight-Finley (@mkfin7), Mohammed Hamdy (@mmhamdy), Maxim Nazarov (@mnazarov), Maria Paula Caldas (@mpaulacaldas), Mustafa Ascha (@mustafaascha) , Nelson Areal (@nareal), Nate Olson (@nate-d-olson), Nathanael (@nateaff), @nattalides, Ned Western (@NedJWestern), Nick Clark (@nickclark1000), @nickelas, Nirmal Patel (@nirmalpatel ), Nischal Shrestha (@nischalshrestha), Nicholas Tierney (@njtierney), Jacob Nowosad (@Nowosad), Nick Pullen (@nstjhp), @olivier6088, Oliver Cailloux (@oliviercailloux), Robin Penfold (@p0bs), Pablo E. Garcia Peter Hurford (@peterhurford), Peter Baumgartner (@petzi53), Patrick Kennedy (@pkq), Pooya Taherkhani (@pooyataher), Y. Yu (@PursuitOfDataScience), Radu Grosu (@radugrosu), Ralph Straumann (@rastrau) , Rayna M Harris (@raynamharris), @ReeceGoding, Robin Gertenbach (@rgertenbach), Jajo (@RIngyao), Riva Quiroga (@rivaquiroga), Richard Knight (@RJHKnight), Richard Zijdeman (@rlzijdeman), @robertchu03, Robin Kohrs (@RobinKohrs), Emily Robinson (@robinsones), Rob Tenorio (@robtenorio) , Rod Mazloomi (@RohanAlexander), Romero Morais (@RomeroBarata), Albert Y. Kim (@rudeboybert), Saghir (@saghirb), Hojjat Salmasian (@salmasian), Jonas (@sauercrowd), Vebash Naidoo (@sciencificity), Seamus McKinsey (@seamus-mckinsey), @seanpwilliams, Luke Smith (@seasmith), Matthew Sedaghatfar (@sedaghatfar), Sebastian Kraus (@sekR4 ), Sam Firke (@sfirke), Shannon Ellis (@ShanEllis, @shoili, Christian Heinrich (@Shurakai), S'busiso Mkhondwane (@sibusiso16), SM Raiyyan (@sm-raiyyan), Jakob Krigovsky (@sonicdoe), Stephen Koenig (@stephan-koenig), Stephen Balogun (@stephenbalogun), Steven M. Mortimer (@StevenMMortimer), Stephen Guillou (@stragu), Sulgi Kim (@sulgik), Sergiusz Bleja (@Svenski), Tal Galili (@ talgalili), Alec Fisher (@Taurenamo), Todd Gerarden (@tgerarden), Tom Godfrey (@thomasggodfrey), Tim Broderick (@timbroderick), Tim Waterhouse (@timwaterhouse), TJ Mahr (@tjmahr), Thomas Klebel (@tklebel ), Tom Prior (@tomjamesprior), Terence Teo (@tteo), @twgardner2, Ulrik Lyngs (@ulyngs), Shinya Uryu (@uribo), Martin van der Linden (@vanderlindenma), Walter Somerville (@waltersom), @ werkstattcodes, Will Beasley (@wibeasley), Yihui Xie Hiroaki Yutani (@yutannihilation), Yu Yu Aung (@yuyu-aung), Zach Bogart (@zachbogart), @zeal626, Zeki Akyol (@zekiakyol ).

colophon

Phiên bản trực tuyến của cuốn sách này có sẵn tạihttps://r4ds.hadley.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ởiquarto, giúp bạn dễ dàng viết sách kết hợp văn bản và mã thực thi.

  1. Nếu bạn muốn có cái nhìn tổng quan toàn diện về tất cả các tính năng của RStudio, hãy xem Hướng dẫn sử dụng RStudio tạihttps://docs.posit.co/ide/user.↩︎

R cho Khoa học dữ liệu (2e) (2024)
Top Articles
Latest Posts
Article information

Author: Pres. Lawanda Wiegand

Last Updated:

Views: 6006

Rating: 4 / 5 (71 voted)

Reviews: 94% of readers found this page helpful

Author information

Name: Pres. Lawanda Wiegand

Birthday: 1993-01-10

Address: Suite 391 6963 Ullrich Shore, Bellefort, WI 01350-7893

Phone: +6806610432415

Job: Dynamic Manufacturing Assistant

Hobby: amateur radio, Taekwondo, Wood carving, Parkour, Skateboarding, Running, Rafting

Introduction: My name is Pres. Lawanda Wiegand, I am a inquisitive, helpful, glamorous, cheerful, open, clever, innocent person who loves writing and wants to share my knowledge and understanding with you.