Kho tài liệu hóa tách id từ đề thu thử năm 2024

Chương này sẽ mô tả những kỹ thuật cơ bản của R. Đây không phải là hướng dẫn sử dụng toàn diện, nhưng sẽ cung cấp những kiến thức cơ bản và có thể hữu ích trong việc làm mới hiểu biết của bạn. Phần sẽ liên kết đến những hướng dẫn sử dụng R bao quát hơn.

Show

Các phần của chương này đã được điều chỉnh dưới sự cho phép của Dự án R4Epis.

Xem chương để biết các mẹo khi chuyển đổi từ STATA, SAS hoặc Excel sang R.

Tại sao sử dụng R?

Như đã được công bố trên trang web dự án R, R là một ngôn ngữ và môi trường lập trình cho tính toán và đồ họa thống kê. Nó rất linh hoạt, có khả năng mở rộng và hướng tới cộng đồng.

Chi phí

R được sử dụng miễn phí! Có sự tồn tại mạnh mẽ về đạo đức trong cộng đồng người sử dụng nguồn tài nguyên mở và miễn phí.

Khả năng tái lập

Thực hiện quản lý và phân tích dữ liệu của bạn thông qua một ngôn ngữ lập trình (so sánh với Excel hoặc công cụ khác mà thao tác chính là nhấp chuột/thao tác thủ công) giúp nâng cao khả năng tái lập, giúp phát hiện lỗi dễ dàng hơn và giảm bớt khối lượng công việc của bạn.

Cộng đồng

R có cộng đồng người dùng khổng lồ và có tính hợp tác. Các package và công cụ mới nhằm giải quyết các vấn đề thực tế được phát triển hàng ngày và được kiểm tra bởi cộng đồng người dùng. Ví dụ, R-Ladies là một tổ chức toàn cầu có sứ mệnh thúc đẩy sự đa dạng giới trong cộng đồng R và là một trong những tổ chức người dùng R lớn nhất. Thậm chí có thể có một phần của nhóm này đang ở gần bạn!

Các thuật ngữ chính

RStudio - RStudio là Giao diện đồ họa người dùng (GUI) giúp sử dụng R dễ dàng hơn. Đọc thêm .

Đối tượng - Bao gồm mọi thứ bạn lưu trữ trong R - bộ dữ liệu, biến, danh sách tên làng, quy mô dân số, thậm chí cả các kết quả đầu ra như đồ thị - là các đối tượng được gán tên và có thể được tham chiếu trong các lệnh sau này. Đọc thêm .

Hàm - Mỗi hàm là một code hoạt động mà chấp nhận dữ liệu đầu vào và trả về kết quả đầu ra đã được biến đổi. Đọc thêm .

Packages - Mỗi package R là một gói câu lệnh có khả năng chia sẻ. Đọc thêm .

Scripts - Mỗi script là một tệp tài liệu chứa các lệnh của bạn. Đọc thêm

Tài nguyên học liệu

Tài nguyên trong RStudio

Tài liệu trợ giúp

Tìm kiếm tab “Help” của RStudio về tài liệu liên quan đến package R và các hàm cụ thể. Tab này nằm trong cửa sổ chứa các tab Files, Plots và Packages (thường ở cửa sổ phía dưới bên phải). Như một lối tắt, bạn cũng có thể nhập tên của một package hoặc câu lệnh vào R Console sau dấu hỏi chấm và không bao gồm dấu ngoặc đơn để mở trang trợ giúp liên quan.

Ví dụ:

# install the "timeline" branch of the epicontacts package from Github p_load_gh("reconhub/epicontacts@timeline")

8 hoặc

# install the "timeline" branch of the epicontacts package from Github p_load_gh("reconhub/epicontacts@timeline")

9.

Các hướng dẫn có sự tương tác

R có thể được học thông qua một số tương tác trong RStudio.

RStudio cung cấp một cửa sổ Tutorial được hỗ trợ bởi package learnr. Chỉ cần cài đặt package này và mở hướng dẫn qua tab “Tutorial” trong cửa sổ RStudio phía trên bên phải (cũng chứa các tab Environment và History).

Package swirl cung cấp các nội dung học tương tác trong R Console. Cài đặt và tải package này, rồi chạy lệnh

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

00 (dấu ngoặc đơn trống) trong R Console. Bạn sẽ thấy các thông báo xuất hiện trong cửa sổ Console. Phản hồi bằng cách nhập vào Console. Nó sẽ hướng dẫn bạn qua một nội dung học do bạn lựa chọn.

Cheatsheets

Có rất nhiều “cheatsheets” PDF có sẵn trên trang web của RStudio, ví dụ như:

  • Factors với package forcats
  • Ngày và thời gian với package lubridate
  • Chuỗi với package stringr
  • Các vòng lặp với package purrr
  • Nhập dữ liệu
  • Cheatsheet biến đổi dữ liệu với package dplyr
  • R Markdown (để tạo các tài liệu như PDF, Word, Powerpoint…)
  • Shiny (để xây dựng các ứng dụng web tương tác)
  • Trực quan hóa dữ liệu với package ggplot2
  • Bản đồ học (GIS)
  • Package leaflet (bản đồ tương tác)
  • Python với R (package reticulate)

Đây là tài nguyên R trực tuyến dành riêng cho Người dùng Excel

Nguồn tài nguyên trực tuyến miễn phí

Cuốn sách R for Data Science (R dành cho Khoa học Dữ liệu) của Garrett Grolemund và Hadley Wickham

Trang web của dự án R4Epis nhằm mục đích “phát triển các công cụ làm sạch, phân tích và báo cáo dữ liệu được chuẩn hóa dùng trong các trường hợp bùng phát dịch phổ biến và các cuộc điều tra dựa trên dân số mà sẽ được tiến hành trong các ứng phó khẩn cấp của Tổ chức Bác sỹ không biên giới” Bạn có thể tìm thấy tài liệu đào tạo cơ bản về R, các mẫu báo cáo RMarkdown và khảo sát về các đợt bùng phát dịch, cũng như các hướng dẫn để giúp bạn thiết lập chúng.

Cài đặt

R và RStudio

Làm thế nào để cài đặt R

Truy cập vào trang web https://www.r-project.org/ và tải phiên bản mới nhất của R phù hợp với máy tính của bạn.

Làm thế nào để cài đặt RStudio

Truy cập vào trang web https://rstudio.com/products/rstudio/download/ và tải phiên bản Desktop mới nhất của RStudio phù hợp với máy tính của bạn.

Quyền truy cập Lưu ý rằng bạn nên cài đặt R và RStudio vào một ổ đĩa mà bạn có quyền đọc và ghi lại. Nếu không, khả năng cài đặt các package R (thường xuyên xảy ra) của bạn sẽ bị ảnh hưởng. Nếu bạn gặp sự cố, hãy thử mở RStudio bằng cách nhấp chuột phải vào biểu tượng và chọn “Run as administrator”. Các mẹo khác có thể được tìm thấy trong chương .

Làm thế nào để cập nhật R và RStudio

Phiên bản R của bạn được in ra R Console khi khởi động. Bạn cũng có thể chạy lệnh

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

01.

Để cập nhật R, truy cập đến trang web được nhắc đến ở trên và cài đặt lại R. Ngoài ra, bạn có thể sử dụng package installr (trên Windows) bằng cách chạy câu lệnh

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

02. Thao tác này sẽ mở ra các hộp thoại giúp bạn tải xuống phiên bản R mới nhất và cập nhật các package của bạn lên phiên bản R mới. Có thể tìm thấy thêm chi tiết trong tài liệu installr .

Lưu ý rằng phiên bản R cũ sẽ vẫn tồn tại trong máy tính của bạn. Bạn có thể tạm thời chạy phiên bản cũ hơn (“installation” cũ hơn) của R bằng cách nhấp vào “Tools” -> “Global Options” trong RStudio và chọn một phiên bản R. Điều này có thể hữu ích nếu bạn muốn sử dụng một package chưa được cập nhật để hoạt động trên phiên bản R mới nhất.

Để cập nhật RStudio, truy cập đến trang web được nhắc đến ở trên và cài đặt lại RStudio. Một tùy chọn khác là nhấp vào “Help” -> “Check for Updates” trong RStudio, nhưng điều này có thể dẫn đến việc không hiển thị các bản cập nhật mới nhất.

Để xem phiên bản R, RStudio hoặc package nào đã được sử dụng khi viết Sổ tay này, hãy xem chương .

Những phần mềm khác bạn có thể cần cài đặt

  • TinyTeX (để biên dịch tài liệu RMarkdown sang PDF)
  • Pandoc (để biên dịch tài liệu RMarkdown)
  • RTools (để xây dựng các package cho R)
  • phantomjs (để lưu ảnh tĩnh của mạng động, chẳng hạn như chuỗi lây truyền)

TinyTex

TinyTex là một bản phân phối LaTeX tùy chỉnh, hữu ích khi tạo các tệp PDF từ R. Truy cập https://yihui.org/tinytex/ để tìm hiểu thêm thông tin.

Để cài đặt TinyTex từ R:

Pandoc

Pandoc là một công cụ chuyển đổi văn bản, một phần mềm tách biệt với R. Nó đi kèm với RStudio và không cần phải tải xuống. Nó hỗ trợ quá trình chuyển đổi văn bản từ Rmarkdown sang các định dạng như .pdf và có bổ sung thêm một số tính năng phức tạp.

phantomjs

Phần mềm này thường được sử dụng để chụp “chụp ảnh màn hình” trang web. Ví dụ khi bạn tạo một chuỗi lây truyền với package epicontacts, một tệp HTML có thể tương tác và chuyển động được tạo ra. Nếu bạn muốn có hình ảnh tĩnh, sử dụng package webshot để tự động hóa quá trình này. Việc này sẽ yêu cầu chương trình bên ngoài “phantomjs”. Bạn có thể cài đặt phantomjs thông qua package webshot bằng lệnh

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

03.

RStudio

Làm quen

Đầu tiên, mở RStudio. Biểu tượng của chúng có sự tương đồng, hãy chắc chắn bạn đang mở RStudio chứ không phải R.

Để RStudio hoạt động bạn cũng cần phải cài đặt R trên máy tính (xem hướng dẫn cài đặt ở bên trên).

RStudio là một giao diện người dùng (GUI) giúp sử dụng R dễ dàng hơn. Bạn có thể coi R như một động cơ đang đảm đương công việc chính của một phương tiện và RStudio là phần thân của phương tiện (với ghế ngồi, các phụ kiện,…) giúp bạn sử dụng động cơ tiến về phía trước. Bạn có thể xem toàn bộ cheatsheet giao diện người dùng của RStudio (PDF) tại đây

RStudio mặc định hiển thị bốn cửa sổ hình chữ nhật.

MẸO: Nếu RStudio của bạn chỉ hiển thị một cửa sổ bên trái thì đó là do bạn chưa mở scripts nào.

Cửa sổ mã nguồn Cửa sổ này, mặc định hiển thị phía trên bên trái, là một khoảng trống để chỉnh sửa, chạy và lưu các của bạn. Script chứa các lệnh mà bạn muốn chạy. Cửa sổ này cũng có thể hiển thị thông tin dữ liệu (data frames).

Đối với người dùng Stata, cửa sổ này tương tự với các cửa sổ Do-file và Data Editor.

Cửa sổ R Console

R Console, mặc định ở cửa sổ bên trái hoặc phía dưới bên trái của RStudio, là ngôi nhà của “động cơ” R. Đây là nơi các lệnh thực sự được chạy, các kết quả đầu ra không phải là đồ họa và các thông báo lỗi/cảnh báo sẽ xuất hiện. Bạn có thể nhập và chạy các lệnh trực tiếp trong R Console, nhưng sẽ sớm nhận ra các lệnh này không được lưu như khi chạy lệnh từ một script.

Nếu bạn đã quen thuộc với Stata, R Console giống như cửa sổ Command Window và Results Window.

Cửa sổ Environment Cửa sổ này, mặc định ở phía trên bên phải, thường được sử dụng để xem tóm tắt ngắn gọn về các itrong R Environment ở phiên hiện tại. Các đối tượng này có thể bao gồm các tập dữ liệu đã được nhập, chỉnh sửa hoặc tạo mới, các tham số bạn đã xác định (ví dụ: một tuần dịch tễ cụ thể để phân tích), vectơ hoặc các danh sách bạn đã xác định trong quá trình phân tích (ví dụ: tên các vùng). Bạn có thể nhấp vào mũi tên bên cạnh tên của data frames để xem các biến số của nó.

Cửa sổ này gần giống với cửa sổ Variables Manager trong Stata.

Cửa sổ này cũng chứa History - nơi mà bạn có thể xem các lệnh đã làm trước đó. Nó cũng có một tab “Tutorial” - là nơi mà bạn có thể hoàn thành các hướng dẫn tương tác với R nếu bạn đã cài đặt package learnr. Nó cũng chứa một tab “Connections” cho phép các kết nối bên ngoài và có thể có cửa sổ “Git” nếu bạn chọn giao diện với Github.

Cửa sổ Plots, Viewer, Packages, và Help Cửa sổ phía dưới bên phải bao gồm một số tab quan trọng. Các đồ họa chính điển hình bao gồm bản đồ sẽ được hiển thị trong Cửa sổ Plot. Các kết quả đầu ra tương tác hoặc HTML sẽ được hiển thị trong cửa sổ Viewer. Cửa sổ File là một trình duyệt có thể được sử dụng để mở hoặc xóa tệp. Cửa sổ Packages cho phép bạn xem, cài đặt, cập nhật, xóa, tải/dỡ các package R và xem bạn có phiên bản package nào. Để tìm hiểu thêm về các package hãy xem bên dưới.

Cửa sổ này chứa các nội dung tương đương với các cửa sổ Plots Manager và Project Manager trong Stata.

Các cài đặt của RStudio

Thay đổi các cài đặt và giao diện của RStudio trong thanh menu thả xuống Tools, bằng cách chọn Global Options. Ở đó, bạn có thể thay đổi cài đặt mặc định, bao gồm cả màu giao diện/nền.

Kho tài liệu hóa tách id từ đề thu thử năm 2024
Kho tài liệu hóa tách id từ đề thu thử năm 2024

Khởi động lại

Nếu R của bạn bị treo, bạn có thể khởi động lại R bằng cách di chuột đến menu Session và nhấp vào “Restart R”. Thao tác này giúp tránh rắc rối khi đóng và mở RStudio. Mọi thứ trong môi trường R của bạn sẽ bị xóa khi thực hiện thao tác này.

Các phím tắt

Dưới đây là một vài phím tắt rất hữu dụng. Tất cả các phím tắt cho Windows, Max và Linux nằm ở chương 2 cheatsheet giao diện người dùng của RStudio.

Windows/Linux Mac Hành động Esc Esc Ngắt lệnh hiện tại (hữu ích nếu bạn vô tình chạy một lệnh chưa hoàn chỉnh và không thể thoát khỏi việc nhìn thấy “+” trong R console) Ctrl+s Cmd+s Lưu (script) Tab Tab Tự động điền Ctrl + Enter Cmd + Enter Chạy (các) dòng/phần code đang được chọn Ctrl + Shift + C Cmd + Shift + c Bình luận/bỏ bình luận các dòng được đánh dấu Alt + - Option + - Chèn

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

04 Ctrl + Shift + m Cmd + Shift + m Chèn

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

05 Ctrl + l Cmd + l Dọn dẹp R console Ctrl + Alt + b Cmd + Option + b Chạy từ đầu đến dòng hiện tại Ctrl + Alt + t Cmd + Option + t Chạy code chunk hiện tại (R Markdown) Ctrl + Alt + i Cmd + Shift + r Chèn code chunk (vào R Markdown) Ctrl + Alt + c Cmd + Option + c Chạy code chunk hiện tại (R Markdown) up/down arrows in R console Tương tự Chuyển đổi qua các lệnh đã chạy gần đây Shift + up/down arrows in script Tương tự Chọn nhiều dòng code Ctrl + f Cmd + f Tìm và thay thế trong script hiện tại Ctrl + Shift + f Cmd + Shift + f Tìm trong các tệp (tìm/thay thế trên nhiều script) Alt + l Cmd + Option + l Thu gọn code đã chọn Shift + Alt + l Cmd + Shift + Option+l Mở rộng code đã chọn

MẸO: Sử dụng phím Tab của bạn khi nhập để sử dụng chức năng tự động hoàn thành của RStudio. Điều này có thể giúp ngăn ngừa các lỗi chính tả. Nhấn Tab trong khi nhập để hiện ra menu thả xuống gồm các hàm và đối tượng có thể có, dựa trên những gì bạn đã nhập.

Hàm

Các hàm là phần cốt lõi của việc sử dụng R. Hàm là cách bạn thực hiện các tác vụ và hoạt động. Nhiều hàm được cài đặt sẵn với R, nhiều hàm khác sẵn sàng để tải xuống trong các packages (giải thích trong phần ), và bạn thậm chí có thể viết các hàm tùy chỉnh của riêng mình!

Phần khái niệm cơ bản của hàm giải thích:

  • Thế nào là một hàm và cách mà chúng hoạt động
  • Thế nào là đối số của hàm
  • Làm cách nào để nhận được sự trợ giúp khi tìm hiểu một hàm

Lưu ý nhanh về cú pháp: Trong cuốn sổ tay này, các hàm được viết dưới dạng code văn bản với dấu mở ngoặc đơn như sau:

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

06. Như đã giải thích trong phần , các hàm được tải xuống có sẵn trong các packages. Trong sổ tay này, tên các package được in đậm, ví dụ như dplyr. Đôi khi trong code ví dụ, bạn có thể thấy tên hàm được liên kết rõ ràng với tên package của chính hàm đó bằng hai dấu hai chấm (

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

  1. như thế này:

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

08. Mục đích của việc liên kết này sẽ được giải thích trong phần package.

Các hàm cơ bản

Một hàm giống như một cỗ máy nhận các dữ liệu đầu vào, thực hiện một số thao tác với dữ liệu đó và sản xuất kết quả đầu ra. Kết quả đầu ra như thế nào phụ thuộc vào hàm mà bạn sử dụng.

Các hàm thường hoạt động dựa trên các đối tượng được đặt trong dấu ngoặc đơn của hàm. Ví dụ, hàm

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

09 tính căn bậc hai của một số:

## [1] 7

Đối tượng được dùng cho một hàm cũng có thể là một cột trong tập dữ liệu (xem phần để biết chi tiết về tất cả các loại đối tượng). Vì R có thể lưu trữ nhiều tập dữ liệu, bạn sẽ cần xác định cả tập dữ liệu và cột. Một cách để làm điều này là sử dụng ký hiệu

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

10 để liên kết tên của tập dữ liệu và tên của cột (

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

11). Trong ví dụ dưới đây, hàm

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

12 được áp dụng cho cột

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

13 trong tập dữ liệu

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

14, và kết quả đầu ra là bản tóm tắt các giá trị số và giá trị missing của cột.

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

LƯU Ý: Đằng sau một hàm là hệ thống code bổ sung phức tạp đã được gói gọn cho người dùng thành một lệnh đơn giản.

Hàm với nhiều đối số

Các hàm thường yêu cầu một số dữ liệu đầu vào, được gọi là đối số, đặt trong dấu ngoặc đơn của hàm, thường được phân tách bằng dấu phẩy.

  • Một vài đối số là bắt buộc để hàm hoạt động chính xác, những đối số khác là tùy chọn
  • Những đối số tùy chọn có thiết lập mặc định
  • Các đối số có thể nhận ký tự, số, logic (TRUE / FALSE) và các dữ liệu đầu vào khác

Dưới đây là một hàm giả định thú vị, được gọi là

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

15, là ví dụ về một hàm điển hình. Hàm này nhận một đối tượng đầu vào (ví dụ: một tập dữ liệu, hoặc trong ví dụ này là “bột”) và thực hiện các hoạt động được xác định bởi các đối số bổ sung (

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

16 and

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

17). Kết quả đầu ra có thể được in ra cửa sổ console hoặc được lưu dưới dạng một đối tượng bằng cách sử dụng toán tử gán

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

04.

Kho tài liệu hóa tách id từ đề thu thử năm 2024

Trong một ví dụ thực tế hơn, hàm

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

19 dưới đây tạo một biểu đồ tháp tuổi dựa trên nhóm tuổi đã xác định và cột phân tách nhị phân, ví dụ như

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

20. Hàm được cung cấp bởi ba đối số trong dấu ngoặc đơn và được phân tách nhau bằng dấu phẩy. Các giá trị được cung cấp cho các đối số thiết lập

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

14 là dataframe được sử dụng,

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

22 là cột để đếm và

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

20 là cột nhị phân để sử dụng chia kim tự tháp theo màu.

# Create an age pyramid age_pyramid(data = linelist, age_group = "age_cat5", split_by = "gender")

Kho tài liệu hóa tách id từ đề thu thử năm 2024

Lệnh trên có thể được viết tương tự như bên dưới, theo cách dài hơn với một dòng mới cho mỗi đối số. Phong cách này có thể dễ đọc và dễ viết “bình luận” hơn với

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

24 để giải thích từng phần (bình luận mở rộng là một thực hành tốt!). Để chạy lệnh dài hơn này, bạn có thể bôi đen toàn bộ lệnh và nhấp vào “Run” hoặc chỉ cần đặt con trỏ vào dòng đầu tiên rồi nhấn đồng thời phím Ctrl và phím Enter.

# Create an age pyramid age_pyramid( data = linelist, # use case linelist age_group = "age_cat5", # provide age group column split_by = "gender" # use gender column for two sides of pyramid )

Kho tài liệu hóa tách id từ đề thu thử năm 2024

Không cần xác định nửa đầu của phép gán đối số (ví dụ:

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

  1. nếu các đối số được viết theo một thứ tự cụ thể (được chỉ định trong tài liệu của hàm). Đoạn code dưới đây tạo ra cùng một kim tự tháp như ở trên, bởi vì hàm kì vọng thứ tự đối số là: data frame, biến

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

26, biến

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

27.

# This command will produce the exact same graphic as above age_pyramid(linelist, "age_cat5", "gender")

Một lệnh

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

19 phức tạp hơn có thể bao gồm các đối số tùy chọn để:

  • Hiển thị tỷ lệ thay vì số lượng (đặt

    Print summary statistics of column 'age' in the dataset 'linelist'

    summary(linelist$age)

    29 khi giá trị mặc định là

    Print summary statistics of column 'age' in the dataset 'linelist'

    summary(linelist$age)
    30)
  • Chỉ định hai màu để sử dụng (

    Print summary statistics of column 'age' in the dataset 'linelist'

    summary(linelist$age)

    31 là viết tắt của “bảng màu” và được cung cấp với một vectơ gồm hai tên màu. Xem chương để biết cách hàm

    Print summary statistics of column 'age' in the dataset 'linelist'

    summary(linelist$age)
    32 tạo ra một vectơ)

LƯU Ý: Đối với các đối số mà bạn xác định với cả hai phần của đối số (ví dụ:

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

29), thứ tự của chúng trong tất cả các đối số không quan trọng.

age_pyramid( linelist, # use case linelist "age_cat5", # age group column "gender", # split by gender proportional = TRUE, # percents instead of counts pal = c("orange", "purple") # colors )

Kho tài liệu hóa tách id từ đề thu thử năm 2024

Viết hàm

R là một ngôn ngữ được định hướng xung quanh hàm, vì thế bạn nên cảm thấy được trao quyền để tự viết các hàm của riêng mình. Việc tạo ra hàm mang đến một vài lợi thế:

  • Tạo điều kiện thuận lợi cho lập trình mô-đun - tách code thành các phần độc lập và có thể quản lý
  • Thay thế việc copy-and-paste lặp đi lặp lại, điều mà có thể dễ xảy ra lỗi
  • Đặt tên dễ nhớ cho các đoạn code

Cách viết một hàm được trình bày cụ thể trong chương .

Packages

Packages chứa các hàm.

Một package trong phần mềm R là một gói code và các tài liệu hướng dẫn có thể chia sẻ được chứa các hàm được định nghĩa trước. Cộng đồng người dùng phần mềm R luôn phát triển những package giúp giải quyết các vấn đề cụ thể, điều này có thể sẽ giúp bạn trong công việc của mình! Bạn sẽ có thể cần cài đặt và sử dụng hàng trăm package trong quá trình sử dụng phần mềm R.

Khi cài đặt, R đã có sẵn các package và hàm “cơ bản” giúp thực hiện các nhiệm vụ đơn giản. Nhưng nhiều người dùng R tạo ra các hàm chuyên biệt, được cộng đồng R kiểm chứng và bạn có thể tải xuống dưới dạng package để sử dụng theo cách của riêng mình. Trong sách này, tên package được viết in đậm. Một trong những khía cạnh thách thức hơn cả của R đó là thường có nhiều hàm hoặc package để lựa chọn nhằm hoàn thành một nhiệm vụ nhất định.

Cài đặt và Gọi

Các hàm được chứa trong packages có thể được tải (“cài đặt”) về máy tính của bạn từ internet. Khi một package được tải xuống, package đó sẽ được lưu trữ trong “thư viện” của bạn. Sau đó, bạn có thể truy cập các hàm mà nó chứa trong phiên làm việc hiện tại trên R của bạn bằng cách “Gọi” package.

Hãy coi R là thư viện cá nhân của bạn: Khi bạn tải xuống một package, thư viện của bạn nhận được một cuốn sách mới gồm các hàm, nhưng mỗi lần bạn muốn sử dụng một hàm trong cuốn sách đó, bạn phải mượn (“gọi”) cuốn sách đó từ thư viện của mình.

Tóm lại: để sử dụng các hàm có sẵn trong package R, phải thực hiện 2 bước:

  1. Package phải được cài đặt (một lần), và
  2. Package phải được gọi (trong mỗi phiên làm việc của R)

Thư viện của bạn

“Thư viện” của bạn thực ra là một thư mục trên máy tính của bạn, bao gồm các thư mục chứa các package đã được cài đặt. Hãy tìm nơi R được cài đặt trong máy tính của bạn và tìm kiếm một thư mục có tên “win-library”. Ví dụ:

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

34 (4.0 là phiên bản R - bạn sẽ có các thư viện khác nhau tùy theo phiên bản R mà bạn đã tải xuống).

Bạn có thể in ra đường dẫn tệp đến thư viện của mình bằng cách gõ lệnh

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

35 (dấu ngoặc bỏ trống). Điều này trở nên đặc biệt quan trọng nếu làm việc với .

Cài đặt từ CRAN

Thông thường, người dùng R tải các package xuống từ CRAN. CRAN (Comprehensive R Archive Network - Mạng lưu trữ R toàn diện) là một kho công cộng trực tuyến gồm các package R đã được xuất bản bởi các thành viên cộng đồng R.

Bạn có cần lo lắng về vi-rút và bảo mật khi tải xuống một package từ CRAN? Đọc bài viết sau để hiểm thêm về chủ đề này.

Làm thế nào để cài đặt và gọi

Trong sách này, chúng tôi khuyên bạn nên sử dụng package pacman (viết tắt của “package manager”). Nó cung cấp một hàm thuận tiện

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

36 mà sẽ cài đặt một package nếu cần và gọi nó để sử dụng trong phiên làm việc hiện tại.

Cú pháp khá đơn giản. Chỉ cần liệt kê tên của các package trong dấu ngoặc đơn của hàm

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

36 và phân tách chúng bằng dấu phẩy. Lệnh dưới đây sẽ cài đặt các package sau rio, tidyverse, và here nếu chúng chưa được cài đặt và sẽ gọi chúng ra để sử dụng. Điều này làm cho cách tiếp cận

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

36 trở nên thuận tiện và ngắn gọn nếu chia sẻ scripts với người khác. Lưu ý rằng tên package có phân biệt chữ hoa chữ thường.

# Install (if necessary) and load packages for use pacman::p_load(rio, tidyverse, here)

Lưu ý rằng chúng ta đã sử dụng cú pháp

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

39 để viết rõ ràng tên package (pacman) trước tên hàm (

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

36), được nối với nhau bằng hai dấu hai chấm

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

07. Cú pháp này tiện dụng vì nó cũng gọi package pacman (giả sử package này đã được cài đặt).

Ngoài ra còn có các hàm base R thay thế mà bạn sẽ gặp thường xuyên. Hàm base R để cài đặt một package là

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

42. Tên của package muốn cài đặt phải được đặt trong dấu ngoặc đơn bên trong dấu ngoặc kép. Nếu bạn muốn cài đặt nhiều package trong một lệnh, chúng phải được liệt kê trong một vectơ dạng ký tự

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

32.

Lưu ý: lệnh này cài đặt một package, nhưng không gọi nó ra để sử dụng trong phiên làm việc hiện tại.

Việc cài đặt cũng có thể được thực hiện bằng cách chọn và nhấp chuột vào cửa sổ RStudio “Package” và chọn “Install”, sau đó tìm kiếm tên package mong muốn cài đặt.

Hàm base R để gọi một package ra sử dụng (sau khi nó đã được cài đặt) là

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

44. Hàm này chỉ có thể gọi một package tại một thời điểm (cách khác của lệnh

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

36). Bạn có thể nhập tên package có hoặc không có dấu ngoặc kép.

Để kiểm tra xem một package đã được cài đặt và/hoặc đã được gọi hay chưa, bạn có thể xem Cửa số Package trong RStudio. Nếu package được cài đặt, nó sẽ hiển thị ở đó với số phiên bản. Nếu checkbox của nó được đánh dấu nghĩa là nó đã được gọi cho phiên làm việc hiện tại.

Cài đặt từ Github

Đôi khi, bạn cần cài đặt một package chưa có sẵn từ CRAN. Hoặc có lẽ package đã có sẵn trên CRAN nhưng bạn muốn phiên bản mới hơn với các tính năng mới chưa được cung cấp trong phiên bản cũ. Chúng thường được lưu trữ trên trang web github.com trong một “kho lưu trữ (repository)” code công khai và miễn phí. Đọc thêm về Github trong chương .

Để download packages R từ Github, bạn có thể dụng hàm

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

46 từ pacman, hàm này sẽ cài đặt package nếu cần và gọi nó để sử dụng cho phiên làm việc R hiện tại. Cách khác để cài đặt bao gồm sử dụng package remotes hoặc devtools. Đọc thêm về các hàm của pacman tại Tài liệu về package.

Để cài đặt từ Github, bạn phải cung cấp thêm các thông tin sau:

  1. Github ID của chủ sở hữu
  2. Tên của repository chứa package
  3. (Tùy chọn) Tên của “nhánh” (phiên bản phát triển cụ thể) mà bạn muốn tải xuống

Trong các ví dụ dưới đây, từ đầu tiên trong dấu ngoặc kép là Github ID của chủ sở hữu kho lưu trữ, sau dấu gạch chéo là tên của kho lưu trữ (tên của package).

# install/load the epicontacts package from its Github repository p_load_gh("reconhub/epicontacts")

Nếu bạn muốn cài đặt từ một “nhánh” (phiên bản) khác với nhánh chính, hãy thêm tên nhánh sau dấu “@”, được đặt phía sau tên kho lưu trữ.

# install the "timeline" branch of the epicontacts package from Github p_load_gh("reconhub/epicontacts@timeline")

Nếu không có sự khác biệt giữa phiên bản Github và phiên bản trên máy tính của bạn, bạn không cần thực hiện thao tác này. Thay vào đó, bạn có thể “buộc” phải cài đặt lại bằng cách sử dụng

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

47 với đối số

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

48. Đọc thêm về pacman tại Minh họa trực tuyến

Cài đặt từ ZIP hoặc TAR

Bạn có thể cài đặt package từ một URL:

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

0

Hoặc, tải xuống máy tính của bạn dưới dạng tệp nén:

Cách 1: sử dụng lệnh

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

49 từ package remotes

Cách 2: sử dụng lệnh

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

42 của base R, cung cấp đường dẫn tệp đến tệp ZIP và thiết lập

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

51 và

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

52.

Cú pháp code

Để tăng sự tường minh trong cuốn sách này, các hàm đôi khi sẽ được đặt sau tên package của chúng bằng cách sử dụng ký hiệu

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

07 theo cách sau:

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

54

Khi một package được gọi cho một phiên làm việc, việc làm này là không cần thiết. Bạn chỉ cần sử dụng

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

55. Tuy nhiên, việc viết tên package sẽ hữu ích khi một tên hàm phổ biến và có thể tồn tại trong nhiều package (ví dụ:

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

56). Việc viết tên package sẽ giúp gọi package trong trường hợp nó chưa được gọi ra.

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

1

Trợ giúp về hàm

Để đọc thêm thông tin về một hàm, bạn có thể tìm kiếm hàm đó trong cửa sổ Help của RStudio nằm ở góc dưới bên phải. Hoặc bạn cũng có thể chạy một lệnh chẳng hạn như

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

57 (đặt tên của hàm sau dấu chấm hỏi) và trang Trợ giúp sẽ xuất hiện trong cửa sổ Help. Cuối cùng, hãy thử tìm kiếm trên internet.

Cập nhật packages

Bạn có thể cập nhật các packages bằng cách cài đặt lại chúng. Bạn cũng có thể bấm vào nút “Update” màu xanh lá cây trong cửa sổ packages của RStudio để xem packages nào có phiên bản mới để cài đặt. Lưu ý rằng code cũ của bạn có thể cần được cập nhật nếu có một bản sửa đổi lớn về cách hoạt động của một hàm!

Xóa packages

Sử dụng

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

58 từ pacman, hoặc

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

59 từ base R. Ngoài ra, hãy tìm thư mục chứa thư viện của bạn và xóa thư mục theo cách thủ công.

Sự phụ thuộc

Các packages thường phụ thuộc vào các packages khác để hoạt động. Chúng được gọi là sự phụ thuộc. Nếu một package không cài đặt được, thì package phụ thuộc vào nó có khả năng cũng không thể cài đặt được.

Xem sự phụ thuộc của một package với lệnh

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

60, và xem package nào phụ thuộc vào nó với

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

61

Hàm bị che giấu

Không có gì lạ nếu hai hoặc nhiều packages chứa cùng một tên hàm. Ví dụ: packages dplyr có hàm

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

06, nhưng package stats cũng vậy. Hàm

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

06 mặc định phụ thuộc vào thứ tự các package này được gọi lên trong phiên làm việc R - packages được gọi ra sau sẽ là mặc định cho hàm

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

06.

Bạn có thể kiểm tra thứ tự của chúng trong cửa sổ Environment của R Studio - nhấp vào menu thả xuống “Global Environment” và xem thứ tự của các packages. Các hàm thuộc các packages ở vị trí thấp hơn trong danh sách thả xuống đó sẽ che giấu các hàm cùng tên trong các packages xuất hiện ở vị trí bên trên trong danh sách thả xuống. Khi bạn vừa gọi một package, R sẽ cảnh báo bạn trong bảng điều khiển nếu xảy ra hiện tượng này, nhưng điều này rất hay bị bỏ quên.

Kho tài liệu hóa tách id từ đề thu thử năm 2024

Dưới đây là những cách bạn có thể sửa lỗi hàm bị che giấu:

  1. Ghi rõ tên package trong lệnh. Ví dụ, sử dụng

    Print summary statistics of column 'age' in the dataset 'linelist'

    summary(linelist$age)
    08
  2. Sắp xếp lại thứ tự mà các package được tải (ví dụ trong

    Print summary statistics of column 'age' in the dataset 'linelist'

    summary(linelist$age)
    36), và bắt đầu một phiên làm việc R mới

Gỡ package

Để gỡ (detach) một package, hãy sử dụng lệnh dưới đây, với tên package chính xác và chỉ có một dấu hai chấm. Lưu ý rằng điều này có thể không giải quyết được việc hàm bị che giấu.

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

2

Cài đặt phiên bản cũ hơn

Xem hướng dẫn này để cài đặt phiên bản cũ hơn của một package cụ thể.

Packages đề xuất

Xem chương để biết danh sách các packages thường được sử dụng trong dịch tễ học.

Scripts

Scripts là một phần cơ bản của lập trình. Chúng là các tài liệu chứa các câu lệnh của bạn (ví dụ: các hàm để tạo và chỉnh sửa bộ số liệu, các hàm để in các biểu đồ trực quan hóa số liệu, v.v.). Bạn có thể lưu một scripts và chạy lại sau này. Có nhiều lợi ích để lưu trữ và chạy các lệnh của bạn từ một scripts (so với nhập “từng lệnh” vào R console):

  • Tiện dụng - bạn có thể chia sẻ công việc của mình với người khác bằng cách gửi cho họ các tập lệnh của bạn
  • Khả năng tái lập - để bạn và những người khác biết chính xác những gì bạn đã làm
  • Kiểm soát phiên bản - để bạn có thể theo dõi các thay đổi do chính bạn hoặc đồng nghiệp thực hiện
  • Dễ dàng nhận xét/chú thích - để giải thích cho đồng nghiệp của bạn những gì bạn đã làm

Bình luận

Khi viết script, bạn có thể thêm các chú thích (“bình luận”) xung quanh code R của bạn. Bình luận là cần thiết để giải thích cho chính bạn và những người đọc khác hiểu những gì bạn đang làm. Bạn có thể thêm bình luận bằng cách nhập dấu thăng (#) và viết bình luận của bạn sau đó. Nội dung bình luận sẽ xuất hiện với màu khác với code R.

Bất kỳ code nào được viết sau dấu # sẽ không được chạy. Do đó, đặt dấu # trước dòng code cũng là một cách hữu ích để tạm thời vô hiệu hóa một dòng code (“comment out”) nếu bạn không muốn xóa nó). Bạn có thể comment out/in nhiều dòng cùng một lúc bằng cách bôi đen chúng và nhấn Ctrl + Shift + c (Cmd + Shift + c trong Mac).

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

3

  • Bình luận những gì bạn đang làm và tại sao bạn làm như vậy.
  • Chia code của bạn thành các phần hợp lý
  • Kèm theo code của bạn với mô tả từng bước về những gì đang được thực hiện (ví dụ: các bước được đánh số)

Phong cách viết code

Phong cách viết code của bạn rất quan trọng - đặc biệt là khi làm việc theo nhóm. Chúng tôi khuyên bạn nên tuân theo hướng dẫn phong cách viết code tidyverse . Bên cạnh đó còn có các packages khác như styler và lintr để giúp bạn tuân theo phong cách này.

Một vài điểm rất cơ bản để làm cho code của bạn dễ dàng đọc được đối với người khác: * Khi đặt tên cho các đối tượng, chỉ sử dụng các chữ cái viết thường, số và dấu gạch dưới

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

67, ví dụ:

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

68 * Thường xuyên sử dụng dấu cách, bao gồm cả xung quanh các toán tử, ví dụ:

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

69 và

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

70

Ví dụ về Script

Dưới đây là một ví dụ về một đoạn ngắn R script. Hãy nhớ rằng, bạn càng giải thích ngắn gọn lệnh code của mình trong phần bình luận, thì đồng nghiệp của bạn sẽ càng thích bạn!

Kho tài liệu hóa tách id từ đề thu thử năm 2024

R markdown

R markdown là một dạng của R script và có khả năng xuất thành các tệp đầu ra (PDF, Word, HTML, Powerpoint, v.v.). Đây là những công cụ vô cùng hữu ích và linh hoạt thường được sử dụng để tạo các báo cáo tự động. Ngay cả trang web và cuốn sách này cũng được viết bằng R markdown!

Bạn cần biết rằng những người mới bắt đầu dùng R cũng có thể sử dụng R Markdown - do đó đừng sợ! Để tìm hiểu thêm, hãy xem chương trong cuốn sách này.

R notebooks

Không có sự khác biệt trong cách viết giữa R markdown và R notebook. Tuy nhiên, việc thực thi của hai loại file này hơi khác nhau một chút. Xem trang Web này để biết thêm chi tiết.

Shiny

Shiny apps/websites được chứa trong một script có tên

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

71. Tệp này có ba thành phần:

  1. Giao diện người dùng (ui)
  2. Một hàm máy chú
  3. Một lệng gọi hàm

    Print summary statistics of column 'age' in the dataset 'linelist'

    summary(linelist$age)
    72

Xem thêm trong cuốn sách này tại chương , hoặc hướng dẫn trực tuyến này: Shiny tutorial

Trước đây, tệp bên trên được chia thành 2 tệp con (

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

73 và

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

74)

Thu gọn Code

Bạn có thể thu gọn các đoạn code để làm cho script của bạn dễ đọc hơn.

Để làm điều này, hãy tạo tiêu đề văn bản bằng dấu thăng #, viết tiêu đề của bạn và thêm vào phía sau nó ít nhất hoặc là 4 dấu gạch ngang (-), dấu thăng (#) hoặc dấu bằng (=). Ngay sau đó, một mũi tên nhỏ sẽ xuất bên cạnh ở bên phải số thự tự của dòng lệnh. Bạn có thể nhấp vào mũi tên này và phần code bên dưới sẽ được thu gọn cho đến trước tiêu đề tiếp theo và một mũi tên hai chiều xuất hiện ở đây.

Để mở rộng lại đoạn code đã thu gọn, hãy nhấp lại vào mũi tên hoặc biểu tượng mũi tên hai chiều. Ngoài ra còn có thể sử dụng thêm các phím tắt như đã được giải thích trong của chương này.

Bằng cách tạo tiêu đề bằng #, bạn cũng sẽ kích hoạt Mục lục ở cuối tập lệnh của mình (xem bên dưới) mà bạn có thể sử dụng để điều hướng tập lệnh của mình. Bạn có thể tạo tiêu đề phụ bằng cách thêm các ký hiệu #, ví dụ: # # cho tiêu đề chính, ## fcho tiêu đề thứ hai, và ### cho tiêu đề thứ ba.

Dưới đây là hai phiên bản của một ví dụ cho script. Ở bên trái là bản gốc với các tiêu đề được chú thích. Ở bên phải, bốn dấu gạch ngang đã được viết sau mỗi tiêu đề, làm cho chúng có thể thu gọn được. Hai trong số chúng đã được thu gọn và bạn có thể thấy Mục lục ở dưới cùng hiện hiển thị từng phần.

Kho tài liệu hóa tách id từ đề thu thử năm 2024
Kho tài liệu hóa tách id từ đề thu thử năm 2024

Các phần code khác mặc định đủ điều kiện để thu gọn bao gồm các phần “nằm giữa” hai dấu ngoặc nhọn

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

75, chẳng hạn như định nghĩa hàm hoặc các khối điều kiện (câu lệnh if else). Bạn có thể đọc thêm về cách thu gọn code tại trang của Rstudio.

Thư mục làm việc

Thư mục làm việc là vị trí thư mục gốc được R sử dụng cho công việc của bạn - nơi R tìm kiếm và lưu các tệp theo mặc định. Mặc định là, R sẽ lưu các tệp mới và xuất tệp vào vị trí này, đồng thời sẽ tìm kiếm các tệp để nhập dữ liệu (ví dụ: bộ dữ liệu) tại đây.

Thư mục làm việc xuất hiện bằng dòng chữ màu xám ở phía trên cửa sổ Rstudio Console. Bạn cũng có thể in thư mục làm việc hiện tại bằng cách chạy lệnh

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

76 (để trống dấu ngoặc đơn).

Kho tài liệu hóa tách id từ đề thu thử năm 2024

Gợi ý cách tiếp cận

Xem thêm tại chương để biết chi tiết về gợi ý các cách tiếp cận của chúng tôi trong việc quản lý thư mục làm việc của bạn. Một cách phổ biến, hiệu quả và không gặp sự cố khi quản lý thư mục làm việc và đường dẫn tệp là kết hợp 3 yếu tố này trong một quy trình làm việc với có định hướng :

  1. Một dự án R để lưu trữ tất cả tệp của bạn (xem chương )
  2. Package here để định vị tệp (xem chương )
  3. Packge rio để nhập/xuất tệp (xem chương )

Thiết lập bằng lệnh

Cho tới gần đây, nhiều người học R đã được dạy để bắt đầu script của họ bằng lệnh

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

77. Hãy thay đổi thói quen đó bằng cách sử dụng và đọc thêm tài liệu sau để hiểu lý do không nên sử dụng

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

78. Một cách ngắn gọn là, công việc của bạn chỉ thực hiện được trên máy tính của bạn, các đường dẫn tệp được sử dụng để nhập và xuất tệp trở nên “dễ lỗi” và điều này cản trở nghiêm trọng đến việc cộng tác và sử dụng code của bạn trên bất kỳ máy tính nào khác. Bạn có những lựa chọn khác dễ dàng hơn!

Như đã nói ở trên, mặc dù chúng tôi không khuyến nghị phương pháp này trong hầu hết các trường hợp, bạn vẫn có thể sử dụng lệnh

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

77 với đường dẫn tệp thư mục mong muốn trong dấu ngoặc kép, ví dụ:

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

4

NGUY HIỂM: thiết lập một thư mục làm việc với

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

77 có thể dẫn đến “lỗi” nếu đường dẫn tệp dành riêng cho một máy tính. Thay vào đó, hãy sử dụng đường dẫn tệp liên quan đến thư mục gốc Dự án R (với package here).

Thiết lập thủ công

Để thiết lập thư mục làm việc một cách thủ công (trỏ và nhấp tương đương với

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

77), hãy chọn mục Session trên thanh công cụ và chọn “Set Working Directory”, sau đó chọn “Choose Directory”. Chú ý: nếu sử dụng phương pháp này, bạn sẽ phải thực hiện việc này theo cách thủ công mỗi khi mở RStudio.

Thiết lập bên trong một dự án R

Nếu bạn đang mở một dự án R, thư mục làm việc sẽ mặc định là thư mục gốc của dự án R có chứa tệp “.rproj”. Điều này sẽ áp dụng nếu bạn mở RStudio bằng cách nhấp vào mở R Project (tệp có phần mở rộng “.rproj”).

Thư mục làm việc với R markdown

Trong script ở R markdown, thư mục làm việc mặc định là thư mục chứa tệp R markdown (

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

82). Nếu sử dụng dự án R và package here, điều này sẽ không được áp dụng. Để biết thư mục làm việc là gì, sử dụng lệnh

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

83 như đã được giải thích tại chương .

Nếu bạn muốn thay đổi thư mục làm việc của một tệp độc lập ở R markdown (không phải ở dự án R), nếu bạn sử dụng

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

77 điều này sẽ chỉ áp dụng chỉ cho đoạn code đó. Để thực hiện thay đổi cho tất cả các đoạn code trong R markdown, hãy điều chỉnh ở bước thiết lập để thêm tham số

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

85, như bên dưới:

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

5

Cách này dễ hơn nhiều so với chỉ sử dụng R markdown bên trong một dự án R và sử dụng package here.

Cung cấp đường dẫn tệp

Có lẽ điều khiến những người mới bắt đầu với R cảm thấy nản nhất (ít nhất là với người dùng máy tính Windows) đó là gõ đường dẫn tệp để nhập xuất dữ liệu. Chúng tôi có giải thích cặn kẽ về cách tạo đường dẫn tệp đầu vào tốt nhất trong chương , nhưng dưới đây là một số điểm chính:

Đường dẫn tệp bị lỗi

Dưới đây là ví dụ về đường dẫn tệp “tuyệt đối” hoặc “địa chỉ đầy đủ”. Chúng có thể bị lỗi nếu được sử dụng bởi một máy tính khác. Một ngoại lệ là nếu bạn đang sử dụng ổ đĩa chia sẻ/mạng.

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

6

Đường dẫn với dấu gạch chéo

Nếu nhập đường dẫn tệp, hãy lưu ý hướng của các dấu gạch chéo. Sử dụng dấu gạch chéo xuôi (

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

  1. để tách các thành phần (“data/provincial.csv”). Đối với người dùng Windows, cách mặc định mà đường dẫn tệp được hiển thị là dấu gạch chéo ngược (\) - vì vậy bạn sẽ cần phải thay đổi hướng của mỗi dấu gạch chéo. Nếu bạn sử dụng package here được miêu tả ở thì dấu gạch chéo không còn là vấn đề với bạn nữa.

Đường dẫn tệp tương đối

Nói chung, chúng tôi khuyên bạn nên cung cấp các đường dẫn tệp theo cách “tương đối” - nghĩa là, đường dẫn liên quan đến thư mục gốc Dự án R của bạn. Bạn có thể thực hiện việc này bằng cách sử dụng package here như được giải thích trong chương . Một đường dẫn tệp tương đối sẽ trông như thế này:

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

7

Ngay cả khi sử dụng đường dẫn tệp tương đối trong dự án R, bạn vẫn có thể sử dụng đường dẫn tuyệt đối để nhập/xuất dữ liệu ở bên ngoài dự án R của bạn.

Đối tượng

Mọi thứ trong R đều là một đối tượng, và R là một ngôn ngữ “lập trình hướng đối tượng”. Các phần dưới đây sẽ giải thích:

  • Cách tạo ra các đối tượng (

    Print summary statistics of column 'age' in the dataset 'linelist'

    summary(linelist$age)
    04)
  • Các loại đối tượng (ví dụ: data frames, vectors..)
  • Cách truy cập các tập con của đối tượng (ví dụ: các biến số trong một bộ dữ liệu)
  • Các loại đối tượng (ví dụ: numeric, logical, integer, double, character, factor)

Mọi thứ đều là một đối tượng

Phần này được dựa theo sách R4Epis project. Mọi thứ bạn lưu trữ trong R - bao gồm bộ dữ liệu, biến số, danh sách tên làng, tổng số dân, thậm chí cả kết quả đầu ra như biểu đồ - đều là các đối tượng, được gán tên và có thể được tham chiếu trong các lệnh sau đó.

Một đối tượng tồn tại khi bạn đã gán giá trị cho nó (xem phần gán bên dưới). Khi nó được gán một giá trị, đối tượng sẽ xuất hiện trong cửa sổ Environment (xem cửa sổ phía trên bên phải của RStudio). Sau đó, nó có thể được sử dụng, thao tác, thay đổi và định nghĩa lại.

Định nghĩa một đối tượng (

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

88)

Tạo ra một đối tượng bằng cách gán cho chúng một giá trị bằng toán tử <-. Bạn có thể nghĩ về toán tử gán

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

04 tương đương với từ “được định nghĩa là”. Các lệnh gán thường tuân theo một trật tự quy định:

tên đối tượng <- giá trị của đối tượng (hoặc quy trình / tính toán tạo ra giá trị)

Ví dụ: bạn muốn ghi nhận một báo cáo tuần dịch tễ học hiện tại dưới dạng một đối tượng để tham chiếu tới code của bạn sau này. Trong ví dụ này, đối tượng

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

90 được tạo khi nó được gán giá trị

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

91 (dấu ngoặc kép sẽ quy định đây là giá trị dạng chữ). Đối tượng

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

90 sẽ xuất hiện trong cửa sổ RStudio Environment (phía trên bên phải) và có thể được tham chiếu tới các lệnh sau này.

Xem các lệnh R và kết quả của chúng như dưới đây.

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

8

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

9

CHÚ Ý: Lưu ý rằng số

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

93 trong kết quả ở R console đơn giản là chỉ ra rằng bạn đang xem mục đầu tiên của đầu ra

THẬN TRỌNG: Giá trị của một đối tượng có thể bị ghi đè bất kỳ lúc nào bằng cách chạy lệnh gán để định nghĩa lại giá trị của nó. Do đó, thứ tự của các lệnh được chạy rất quan trọng.

Lệnh sau sẽ định nghĩa lại giá trị của đối tượng

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

90:

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

0

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

1

Dấu bằng

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

95

Bạn cũng sẽ thấy các dấu bằng trong R code:

  • Hai dấu bằng

    Print summary statistics of column 'age' in the dataset 'linelist'

    summary(linelist$age)
    96 giữa hai đối tượng hoặc giá trị dùng để đặt một câu hỏi logic: “cái này có bằng cái kia không?”.
  • Bạn cũng sẽ thấy các dấu bằng trong các hàm được sử dụng để xác định giá trị của các đối số của hàm (đọc thêm ở các phần bên dưới), ví dụ:

    Print summary statistics of column 'age' in the dataset 'linelist'

    summary(linelist$age)
    97.
  • Bạn có thể sử dụng một dấu bằng

    Print summary statistics of column 'age' in the dataset 'linelist'

    summary(linelist$age)

    95 thay cho dấu

    Print summary statistics of column 'age' in the dataset 'linelist'

    summary(linelist$age)
    04 để tạo và định nghĩa các đối tượng, nhưng điều này không được khuyến khích. Bạn có thể đọc về lý do tại sao điều này không được khuyến khích ở đây.

Bộ dữ liệu

Bộ dữ liệu (datasets) cũng là một đối tượng (thường là một “dataframes”) và phải được gán tên khi chúng được nhập. Trong đoạn mã dưới đây, đối tượng

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

14 được tạo và gán giá trị từ tệp CSV, tệp này được nhập bằng package rio và hàm

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

01 của package này.

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

2

Bạn có thể đọc thêm về nhập và xuất dữ liệu trong chương .

THẬN TRỌNG: Lưu ý nhanh về cách đặt tên đối tượng:

  • Tên đối tượng không được chứa dấu cách, nhưng bạn nên sử dụng dấu gạch dưới (_) hoặc dấu chấm (.) thay vì dấu cách.
  • Tên đối tượng phân biệt chữ hoa và chữ thường (nghĩa là Dataset_A khác với dataset_A).
  • Tên đối tượng phải bắt đầu bằng chữ cái (không được bắt đầu bằng số như 1, 2 hoặc 3).

Kết quả đầu ra

Các kết quả đầu ra như bảng và biểu đồ cung cấp một ví dụ về cách các kết quả đầu ra có thể được lưu dưới dạng đối tượng hoặc chỉ được in ra mà không cần lưu. Ví dụ, một bảng chéo giữa giới tính và biến kết cục được tạo ra bởi hàm

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

02 trong base R, có thể được in trực tiếp vào R console (mà không cần lưu).

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

3

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

4

Nhưng bảng này cũng có thể được lưu dưới dạng một đối tượng được đặt tên. Sau đó, bạn có thể in nó ra.

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

5

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

4

Cột

Các cột trong tập dữ liệu cũng là các đối tượng và có thể được định nghĩa, ghi đè và tạo như được mô tả bên dưới trong phần Cột.

Bạn có thể sử dụng toán tử gán từ base R để tạo một cột mới. Dưới đây, cột mới

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

03 (Body Mass Index) được tạo, và giá trị mới ứng với mỗi hàng là kết quả của một phép toán trên giá trị của các hàng trong cột

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

04 và cột

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

05.

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

7

Tuy nhiên, trong cuốn sách này, chúng tôi tập trung vào một cách tiếp cận khác để định nghĩa cột, sử dụng hàm

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

06 trong package dplyr và piping với toán tử pipe (

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

05). Cú pháp dễ đọc hơn và có những ưu điểm khác đã được giải thích trong cuốn sách này ở chương . Bạn có thể đọc thêm về piping trong phần Piping phía bên dưới.

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

8

Cấu trúc đối tượng

Các đối tượng có thể là một phần dữ liệu đơn lẻ (ví dụ:

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

08), hoặc chúng có thể bao gồm dữ liệu có cấu trúc.

Hình ảnh dưới đây được tham khảo từ hướng dẫn R trực tuyến này. Nó cho thấy một số cấu trúc dữ liệu phổ biến và tên của chúng. Hình ảnh này không bao gồm dữ liệu không gian. Bạn có thể xem thêm về dữ liệu không gian tại chương .

Kho tài liệu hóa tách id từ đề thu thử năm 2024

Trong dịch tễ học (và đặc biệt là dịch tễ học thực địa), bạn sẽ thường xuyên phải tiếp xúc với data frames và vectors:

Cấu trúc thường gặp Giái thích Ví dụ Vectors Một vùng chứa cho một chuỗi các đối tượng đơn lẻ, tất cả đều thuộc cùng một loại (e.g. số, chữ). “Biến” (Cột) trong dữ liệu là vectors (ví dụ: cột

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

09). Data Frames Vectors (ví dụ: các cột) được liên kết với nhau mà tất cả đều có cùng số hàng. `linelist` là một data frame.

Lưu ý rằng để tạo một vectơ “độc lập” (mà không phải là một phần của data frame), hàm

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

32 được sử dụng để kết hợp các phần tử khác nhau. Ví dụ: nếu tạo một vectơ màu sắc thang màu của biểu đồ:

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

11

Kiểu đối tượng

Tất cả các đối tượng được lưu trữ trong R đều có một kiểu dữ liệu cho biết cách nó được xử lý. Có nhiều kiểu đối tượng, nhưng những kiểu phổ biến bao gồm:

Kiểu Giải thích Ví dụ Ký tự Là các chữ/từ/câu được đặt “trong dấu ngoặc kép”. Đối tượng kiểu ký tự thì không thể tính toán “Những ký tự nằm trong dấu ngoặc kép” Số nguyên Các số nguyên (không có phần thập phân) -5, 14, hoặc 2000 Số thực Bao gồm các số nguyên và có thể bao gồm phần thập phân. Nếu trong dấu ngoặc kép, chúng sẽ được coi là dạng ký tự 23.1 hoặc 14 Factor Đây là các vector có trật tự xác định hoặc các giá trị có nhiều danh mục Biến số của tình trạng kinh tế với các giá trị theo tứ tự Ngày tháng Khi R được thông báo rằng một dữ liệu ở dạng ngày tháng R, những dữ liệu này có thể được thao tác và hiển thị theo những cách đặc biệt. Xem thêm về biến ngày tháng tại chương . 2018-04-12 hoặc 15/3/1954 hoặc Wed 4 Jan 1980 Logic Giá trị của biến chỉ có thể là hai giá trị đặc biệt sau TRUE hoặc FALSE (lưu ý đây không phải là “TRUE” và”FALSE” trong dấu ngoặc kép) TRUE hoặc FALSE data.frame Một data.frame trong R lưu trữ một tập dữ liệu điển hình. Data.frame bao gồm các vector (cột) dữ liệu được liên kết với nhau, tất cả chúng đều có cùng một số lượng quan sát (hàng). Tập dữ liệu mẫu AJS có tên là

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

12chứa 68 biến với 300 quan sát (mỗi hàng) tibble tibbles là một dạng khác của data.frame, sự khác biệt chính là tibble in đẹp hơn trong R console (hiển thị 10 hàng đầu tiên và chỉ các cột vừa với màn hình) data frame, danh sách, hoặc ma trận có thể chuyển đổi thành tibble bằng hàm

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

13 Danh sách Một danh sách giống như một vector, nhưng chứa các đối tượng có kiểu khác nhau Một danh sách có thể chứa một số duy nhất, một data.frame, một vector và thậm chí một danh sách khác bên trong nó!

Bạn có thể kiểm tra kiểu của một đối tượng bằng cách cung cấp tên của nó tới hàm

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

14. Lưu ý: bạn có thể tham chiếu một cột cụ thể trong tập dữ liệu bằng cách sử dụng ký hiệu

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

10 để phân tách tên của tập dữ liệu và tên của cột.

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

9

# Create an age pyramid age_pyramid(data = linelist, age_group = "age_cat5", split_by = "gender")

0

# Create an age pyramid age_pyramid(data = linelist, age_group = "age_cat5", split_by = "gender")

1

# Create an age pyramid age_pyramid(data = linelist, age_group = "age_cat5", split_by = "gender")

2

# Create an age pyramid age_pyramid(data = linelist, age_group = "age_cat5", split_by = "gender")

3

# Create an age pyramid age_pyramid(data = linelist, age_group = "age_cat5", split_by = "gender")

4

Đôi khi, một cột sẽ được tự động chuyển đổi thành một kiểu khác bởi R. Hãy coi chừng điều này! Ví dụ: nếu bạn có một vectơ hoặc cột kiểu số, nhưng một giá trị ký tự được chèn vào … thì toàn bộ cột sẽ thay đổi thành kiểu ký tự.

# Create an age pyramid age_pyramid(data = linelist, age_group = "age_cat5", split_by = "gender")

5

# Create an age pyramid age_pyramid(data = linelist, age_group = "age_cat5", split_by = "gender")

2

# Create an age pyramid age_pyramid(data = linelist, age_group = "age_cat5", split_by = "gender")

7

# Create an age pyramid age_pyramid(data = linelist, age_group = "age_cat5", split_by = "gender")

4

Một ví dụ phổ biến của điều này là khi thao tác với một data frame để in bảng - nếu bạn tạo một hàng tính tổng và cố gắng dán /gắn phần trăm với số trong cùng một ô (ví dụ:

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

16), toàn bộ cột dạng số ở trên sẽ chuyển đổi thành ký tự và không còn có thể được sử dụng cho các phép tính toán học nữa.

Đôi khi, bạn sẽ cần chuyển đổi các đối tượng hoặc cột sang một loại khác.

Hàm Chức năng

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

17 Chuyển sang kiểu ký tự

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

18 Chuyển sang kiểu số

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

19 Chuyển sang kiểu số nguyên

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

20 Chuyển sang kiểu ngày tháng - Chú ý: Xem mục để biết thêm chi tiết

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

21 Chuyển sang kiểu factor - Chú ý: nếu muốn định nghĩa lại thứ tự của các giá trị trong biến factor thì cần thêm các đối số bổ sung

Tương tự như vậy, một số hàm base R có thể kiểm tra xem một đối tượng CÓ thuộc của một kiểu dữ liệu cụ thể nào hay không, chẳng hạn như

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

22,

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

23,

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

24,

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

25,

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

26

Bạn có thể tham khảo một tài liệu trực tuyến về các kiểu và cấu trúc dữ liệu trong R tại đây.

Cột / Biến số (

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

27)

Một cột trong data frame về mặt kỹ thuật là một “vector” (xem bảng ở trên) - bao gồm một chuỗi các giá trị cùng loại (ký tự, số, lôgic, v.v.).

Một vectơ có thể tồn tại độc lập với một data frame, ví dụ: vectơ tên cột mà bạn muốn đưa vào làm biến giải thích trong mô hình. Để tạo một vectơ “độc lập”, hãy sử dụng hàm

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

32 như dưới đây:

# Create an age pyramid age_pyramid(data = linelist, age_group = "age_cat5", split_by = "gender")

9

# Create an age pyramid age_pyramid( data = linelist, # use case linelist age_group = "age_cat5", # provide age group column split_by = "gender" # use gender column for two sides of pyramid )

0

Các cột trong data frame cũng là vectơ và có thể được gọi, tham chiếu, trích xuất hoặc tạo bằng ký hiệu

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

10. Ký hiệu

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

10 kết nối tên của cột với tên của data frame tương ứng. Trong cuốn sách này, chúng tôi cố gắng sử dụng từ “cột” thay vì “biến số”.

# Create an age pyramid age_pyramid( data = linelist, # use case linelist age_group = "age_cat5", # provide age group column split_by = "gender" # use gender column for two sides of pyramid )

1

Bằng cách nhập tên của một dataframe, theo sau bởi ký tự

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

10, bạn sẽ thấy menu gợi ý của tất cả các tên cột trong dataframe. Bạn có thể di chuyển giữa các cột bằng phím mũi tên, chọn cột bằng phím Enter để tránh lỗi chính tả!

Kho tài liệu hóa tách id từ đề thu thử năm 2024

MẸO NÂNG CAO: Một số đối tượng phức tạp hơn (ví dụ: một danh sách hoặc đối tượng

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

  1. có thể có nhiều cấp độ có thể được truy cập thông qua nhiều ký tự đô la. Ví dụ:

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

33

Truy cập / indexing đối tượng bằng dấu ngoặc vuông (

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

34)

Khi cần xem một phần của đối tượng, còn được gọi là “indexing”, bạn có thể sử dụng dấu ngoặc vuông

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

34. Sử dụng

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

10 trên dataframe để truy cập một cột cũng là một kiểu indexing.

# Create an age pyramid age_pyramid( data = linelist, # use case linelist age_group = "age_cat5", # provide age group column split_by = "gender" # use gender column for two sides of pyramid )

2

# Create an age pyramid age_pyramid( data = linelist, # use case linelist age_group = "age_cat5", # provide age group column split_by = "gender" # use gender column for two sides of pyramid )

3

Dấu ngoặc vuông cũng hoạt động để xem các phần cụ thể trong kết quả đầu ra, chẳng hạn như đầu ra của hàm

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

12:

# Create an age pyramid age_pyramid( data = linelist, # use case linelist age_group = "age_cat5", # provide age group column split_by = "gender" # use gender column for two sides of pyramid )

4

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

# Create an age pyramid age_pyramid( data = linelist, # use case linelist age_group = "age_cat5", # provide age group column split_by = "gender" # use gender column for two sides of pyramid )

6

# Create an age pyramid age_pyramid( data = linelist, # use case linelist age_group = "age_cat5", # provide age group column split_by = "gender" # use gender column for two sides of pyramid )

7

# Create an age pyramid age_pyramid( data = linelist, # use case linelist age_group = "age_cat5", # provide age group column split_by = "gender" # use gender column for two sides of pyramid )

8

# Create an age pyramid age_pyramid( data = linelist, # use case linelist age_group = "age_cat5", # provide age group column split_by = "gender" # use gender column for two sides of pyramid )

9

# This command will produce the exact same graphic as above age_pyramid(linelist, "age_cat5", "gender")

0

# This command will produce the exact same graphic as above age_pyramid(linelist, "age_cat5", "gender")

1

Dấu ngoặc vuông cũng hoạt động trên data frames để xem các hàng và cột cụ thể. Bạn có thể thực hiện việc này bằng cú pháp

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

38:

# This command will produce the exact same graphic as above age_pyramid(linelist, "age_cat5", "gender")

2

Lưu ý rằng bạn cũng có thể indexing hàng / cột trong một data frames và tibbles bằng cách sử dụng cú pháp của package dplyr (hàm

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

06 đối với hàng, và

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

40 đối với cột). Đọc thêm về các hàm quan trọng này trong chương .

Để lọc dựa trên “số thứ tự hàng”, bạn có thể sử dụng hàm

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

41trong package dplyr với dấu ngoặc đơn mở như một phần của biểu thức lọc logic. Thường thì bạn sẽ sử dụng toán tử

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

42 và một khoảng giá trị số như một phần của câu lệnh logic đó, như được trình bày dưới đây. Để xem N hàng đầu tiên, bạn cũng có thể sử dụng hàm

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

43 của package dplyr.

# This command will produce the exact same graphic as above age_pyramid(linelist, "age_cat5", "gender")

3

Khi indexing một đối tượng chứa một danh sách bằng một dấu ngoặc vuông sẽ luôn trả về kiểu danh sách, ngay cả khi chỉ một đối tượng được trả về . Tuy nhiên, hai dấu ngoặc vuông có thể được sử dụng để truy cập một phần tử đơn lẻ đối và trả về một kiểu không phải là một danh sách. Dấu ngoặc vuông cũng có thể được viết sau nhau, như được minh họa bên dưới.

Bạn có thể xem một tại đây, rất hài hước và hữu ích.

# This command will produce the exact same graphic as above age_pyramid(linelist, "age_cat5", "gender")

4

Đây là cách mà một danh sách được in trong R console. Có hai phần tử được đặt tên:

  • Min. 1st Qu. Median Mean 3rd Qu. Max. NA's

    0.00 6.00 13.00 16.07 23.00 84.00 86

    44, một vector chứa ký tự
  • Min. 1st Qu. Median Mean 3rd Qu. Max. NA's

    0.00 6.00 13.00 16.07 23.00 84.00 86

    45, một data frame chứa các địa chỉ

# This command will produce the exact same graphic as above age_pyramid(linelist, "age_cat5", "gender")

5

Dưới đây là các phương pháp indexing mà bạn có thể sử dụng:

# This command will produce the exact same graphic as above age_pyramid(linelist, "age_cat5", "gender")

6

# This command will produce the exact same graphic as above age_pyramid(linelist, "age_cat5", "gender")

7

# This command will produce the exact same graphic as above age_pyramid(linelist, "age_cat5", "gender")

8

# This command will produce the exact same graphic as above age_pyramid(linelist, "age_cat5", "gender")

9

age_pyramid( linelist, # use case linelist "age_cat5", # age group column "gender", # split by gender proportional = TRUE, # percents instead of counts pal = c("orange", "purple") # colors )

0

# This command will produce the exact same graphic as above age_pyramid(linelist, "age_cat5", "gender")

9

age_pyramid( linelist, # use case linelist "age_cat5", # age group column "gender", # split by gender proportional = TRUE, # percents instead of counts pal = c("orange", "purple") # colors )

2

age_pyramid( linelist, # use case linelist "age_cat5", # age group column "gender", # split by gender proportional = TRUE, # percents instead of counts pal = c("orange", "purple") # colors )

3

age_pyramid( linelist, # use case linelist "age_cat5", # age group column "gender", # split by gender proportional = TRUE, # percents instead of counts pal = c("orange", "purple") # colors )

4

age_pyramid( linelist, # use case linelist "age_cat5", # age group column "gender", # split by gender proportional = TRUE, # percents instead of counts pal = c("orange", "purple") # colors )

5

Xóa đối tượng

Bạn có thể xóa từng đối tượng riêng lẻ khỏi cửa sổ R environment bằng cách để tên của đối tượng cần xóa vào trong hàm

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

46 (không có dấu ngoặc kép):

Bạn có thể xóa tất cả các đối tượng (xóa không gian làm việc của bạn) bằng cách chạy:

age_pyramid( linelist, # use case linelist "age_cat5", # age group column "gender", # split by gender proportional = TRUE, # percents instead of counts pal = c("orange", "purple") # colors )

6

Piping (

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

05)

Hai cách tiếp cận chung để làm việc với các đối tượng là:

  1. Pipes/tidyverse - pipes chuyển một đối tượng từ hàm này sang hàm khác - tập trung vào hành động chứ không phải đối tượng
  2. Xác định đối tượng trung gian - một đối tượng được xác định lại nhiều lần - tập trung vào đối tượng

Pipes

Giải thích một cách đơn giản, toán tử pipe (

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

  1. chuyển một đầu ra trung gian từ hàm này sang hàm tiếp theo. Hiểu đơn giản pipe nghĩa là “sau đó”. Nhiều hàm có thể được liên kết với nhau bằng toán tử

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

05.

  • Piping nhấn mạnh một chuỗi các hành động, không phải đối tượng mà các hành động đang áp dụng
  • Pipes được áp dụng tốt nhất khi một chuỗi hành động phải được thực hiện trên một đối tượng
  • Pipes đến từ package magrittr, và đã tự động được thêm vào packages dplyr và tidyverse
  • Pipes làm cho code sạch hơn, dễ đọc hơn và trực quan hơn

Đọc thêm về cách tiếp cận này trong package tidyverse tại đây Hướng dẫn

Đây là một ví dụ mô phỏng dùng để so sánh, sử dụng các hàm hư cấu để “nướng bánh”. Đầu tiên, phương pháp pipe:

age_pyramid( linelist, # use case linelist "age_cat5", # age group column "gender", # split by gender proportional = TRUE, # percents instead of counts pal = c("orange", "purple") # colors )

7

Đây là một khác mô tả công dụng của pipe.

Piping không phải là một hàm trong base R. Để sử dụng piping, package magrittr phải được cài đặt và gọi ra trong phiên làm việc hiện tại (điều này thường được thực hiện bằng cách gọi package tidyverse hoặc dplyr). Bạn có thể đọc thêm về piping trong tài liệu magrittr.

Lưu ý rằng cũng giống như các lệnh R khác, các pipes có thể được sử dụng để hiển thị kết quả hoặc lưu/lưu lại một đối tượng, tùy thuộc vào toán tử

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

04 được code như thế nào. Xem hai ví dụ dưới đây:

age_pyramid( linelist, # use case linelist "age_cat5", # age group column "gender", # split by gender proportional = TRUE, # percents instead of counts pal = c("orange", "purple") # colors )

8

age_pyramid( linelist, # use case linelist "age_cat5", # age group column "gender", # split by gender proportional = TRUE, # percents instead of counts pal = c("orange", "purple") # colors )

9

# Install (if necessary) and load packages for use pacman::p_load(rio, tidyverse, here)

0

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

51

Đây là một “assignment pipe (pipe dùng để gán)” từ package magrittr, package này sẽ pipe một đối tượng theo chiều tiến lên và cũng tái định nghĩa lại đối tượng. Đối tượng cần đứng đầu trong chuỗi pipe. Nó nhanh hơn sử dụng pipe thông thường. Hai lệnh dưới đây là tương đương với nhau:

# Install (if necessary) and load packages for use pacman::p_load(rio, tidyverse, here)

1

Định nghĩa đối tượng trung gian

Cách tiếp cận này dùng để thay đổi đối tượng/dataframes sẽ phát huy hiệu quả nếu:

  • Bạn cần thao tác trên nhiều đối tượng
  • Các bước trung gian có ý nghĩa cụ thể và xứng đáng tạo các tên đối tượng riêng biệt

Các nguy cơ:

  • Tạo đối tượng mới cho mỗi bước có nghĩa là bạn sẽ tạo thêm rất nhiều đối tượng. Nếu bạn sử dụng không cẩn thận, bạn có thể dễ dàng bị nhầm lẫn!
  • Đặt thêm nhiều tên cho nhiều đối tượng có thể gây nhầm lẫn
  • Nếu có lỗi thì không dễ để phát hiện

Đặt tên cho từng đối tượng trung gian hoặc ghi đè lên đối tượng gốc hoặc kết hợp tất cả hàm với nhau đều đi kèm với những rủi ro.

Dưới đây vẫn là ví dụ mô phỏng quy trình làm “bánh” tương tự như trên, nhưng sử dụng phong cách này:

# Install (if necessary) and load packages for use pacman::p_load(rio, tidyverse, here)

2

Kết hợp tất cả các hàm với nhau - câu lệnh rất khó đọc:

# Install (if necessary) and load packages for use pacman::p_load(rio, tidyverse, here)

3

Các toán tử và hàm chính

Mục này sẽ trình bày chi tiết các toán tử trong R, chẳng hạn như :

  • Toán tử định nghĩa
  • Toán tử quan hệ (nhỏ hơn, bằng nhau..)
  • Toán tử logic (và, hoặc..)
  • Xử lý missing
  • Các toán tử và hàm toán học (+/-, >, sum(), median(), …)
  • Toán tử

    Min. 1st Qu. Median Mean 3rd Qu. Max. NA's

    0.00 6.00 13.00 16.07 23.00 84.00 86

    42

Toán tử gán

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

04

Toán tử gán cơ bản trong R là

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

04. Chẳng hạn như

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

  1. Toán tử gán này cũng có thể được viết là

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

95. Chúng tôi khuyên bạn nên sử dụng

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

  1. Bạn nên sử dụng dấu cách trong khi viết code với toán tử gán để dễ đọc hơn.

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

58

Khi , hoặc khi sử dụng R với scipt nguồn, thì bạn có thể cần sử dụng toán tử gán này

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

58 (từ base R). Toán tử này được sử dụng để định nghĩa một đối tượng trong một hàm lồng trong một hàm khác. Xem thêm tại nguồn tham khảo online này.

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

51

Đây là một “pipe gán” từ package magrittr, package này sẽ gán một đối tượng theo chiều tiến lên và cũng định nghĩa lại đối tượng. Pipe gán phải là toán tử đầu tiên trong chuỗi pipe code. Đây là cách viết ngắn gọn, như được trình bày dưới đây là hai ví dụ tương đương với nhau:

# Install (if necessary) and load packages for use pacman::p_load(rio, tidyverse, here)

4

Đoạn code bên trên tương đương với code dưới đây:

# Install (if necessary) and load packages for use pacman::p_load(rio, tidyverse, here)

5

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

61

Toán tử này được sử dụng dể thêm dữ liệu vào Cây phả hệ với package ggtree. Xem thêm chương hoặc Sách online này.

Toán tử quan hệ và logic

Toán tử quan hệ so sánh các giá trị và thường được sử dụng khi định nghĩa các biến mới và tập con của bộ dữ liệu. Dưới đây là các toán tử quan hệ phổ biến trong R:

Ý nghĩa Toán tử Ví dụ Kết quả đầu ra của ví dụ Bằng

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

96

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

63

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

30 (vì R phân biệt chữ hoa chữ thường) Lưu ý rằng == (hai dấu bằng) khác với = (một dấu bằng), một dấu bằng hoạt động tương tự với toán tử gán

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

04 Không bằng

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

66

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

67

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

68 Lớn hơn

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

69

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

70

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

68 Nhỏ hơn

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

72

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

73

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

30 Lớn hơn hoặc bằng

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

75

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

76

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

68 Nhỏ hơn hoặc bằng

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

78

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

79

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

30 Giá trị bị missing

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

81

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

82

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

30 (Xem thêm chương ) Giá trị không missing

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

84

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

85

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

68

Các toán tử logic, chẳng hạn như AND và OR, thường được sử dụng để kết nối các quan hệ và tạo ra các điều kiện phức tạp hơn. Các biểu thức phức tạp có thể yêu cầu dấu ngoặc đơn () để phân nhóm và thứ tự áp dụng.

Ý nghĩa Toán tử AND

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

87 OR

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

88 (thanh dọc) Dấu ngoặc đơn

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

89 Được sử dụng để nhóm các tiêu chí lại với nhau và làm rõ thứ tự hoạt động

Ví dụ: chúng ta có một số liệu có tên linelist với hai biến mà chúng tôi muốn sử dụng để minh họa,

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

90: kết quả xét nghiệm và

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

91: những trường hợp khác trong gia đình. Lệnh dưới đây sử dụng hàm

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

92 để tạo biến mới

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

93 như sau:

# Install (if necessary) and load packages for use pacman::p_load(rio, tidyverse, here)

6

Điều kiện trong ví dụ ở trên Giá trị kết quả trong biến mới “case_def” Nếu giá trị của biến

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

94 và

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

95 bị missing

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

96 (missing) Nếu giá trị trong

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

94 là “Positive” “Confirmed” Nếu giá trị trong

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

94 KHÔNG phải là “Positive” VÀ giá trị trong

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

95 là “Yes” “Probable” Nếu một trong các tiêu chí trên không được đáp ứng “Suspected”

Lưu ý rằng R có phân biệt chữ hoa chữ thường, vì vậy “Positive” khác với “positive”…

Giá trị Missing

Trong R, giá trị missing được biểu diễn bằng giá trị đặc biệt

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

96 (giá trị “dành riêng cho missing”) (chữ N và A viết hoa - không nằm trong dấu ngoặc kép). Nếu dữ liệu bạn nhập vào R bị missing theo cách khác (ví dụ: 99, “Missing”, or .), bạn có thể sẽ cần phải mã hóa lại các giá trị đó thành

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

96. Cách thực hiện việc này được đề cập trong chương .

Để kiểm tra xem một giá trị có phải là

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

96 hay không, sử dụng hàm đặc biệt

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

81, kết quả sẽ trả về

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

68 hoặc

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

30.

# Install (if necessary) and load packages for use pacman::p_load(rio, tidyverse, here)

7

# Install (if necessary) and load packages for use pacman::p_load(rio, tidyverse, here)

8

Đọc thêm về missing, vô hạn,

# Create an age pyramid age_pyramid(data = linelist, age_group = "age_cat5", split_by = "gender")

06, và các giá trị không thể trong chương . Tìm hiểu thêm cách chuyển đổi các giá trị bị missing khi nhập dữ liệu trong chương .

Toán học và thống kê

Tất cả các toán tử và hàm trong chương này đều có sẵn bằng cách sử dụng base R.

Toán tử toán học

Chúng thường được sử dụng để thực hiện phép cộng, phép chia, để tạo cột mới, v.v. Dưới đây là các toán tử toán học phổ biến trong R. Việc bạn có đặt dấu cách xung quanh các toán tử hay không là không quan trọng.

Mục đích Ví dụ trong R phép cộng 2 + 3 phép trừ 2 - 3 phép nhân 2 * 3 phép chia 30 / 5 số mũ 2^3 thứ tự hoạt động ( )

Các hàm toán học

Mục tiêu Hàm làm tròn round(x, digits = n) làm tròn janitor::round_half_up(x, digits = n) làm tròn lên ceiling(x) làm tròn xuống floor(x) giá trị tuyệt đối abs(x) căn bậc hai sqrt(x) số mũ exponent(x) logarit tự nhiên log(x) logarit cơ số 10 log10(x) logarit cơ số 2 log2(x)

lưu ý: sử dụng hàm

# Create an age pyramid age_pyramid(data = linelist, age_group = "age_cat5", split_by = "gender")

07 và

# Create an age pyramid age_pyramid(data = linelist, age_group = "age_cat5", split_by = "gender")

08 để xác định số chữ số thập phân được hiển thị. Sử dụng hàm

# Create an age pyramid age_pyramid(data = linelist, age_group = "age_cat5", split_by = "gender")

09 để làm tròn đến số chữ số nhất định.

Ký hiệu khoa học

Khả năng ký hiệu khoa học được sử dụng phụ thuộc vào giá trị của

# Create an age pyramid age_pyramid(data = linelist, age_group = "age_cat5", split_by = "gender")

10.

Từ tài liệu hướng dẫn của

# Create an age pyramid age_pyramid(data = linelist, age_group = "age_cat5", split_by = "gender")

11: scipen được áp dụng khi quyết định in các giá trị số theo ký hiệu cố định hoặc hàm mũ. Giá trị dương thuộc về ký hiệu cố định còn giá trị âm thuộc về ký hiệu khoa học: ký hiệu cố định sẽ luôn được ưu tiên trừ khi có nhiều chữ số ‘scipen’.

Nếu như có rất nhiều số bé cần hiển thị (vd: số 0), mặc định tính năng này sẽ “được bật”. Để “tắt” tính năng ký hiệu khoa học trong phiên làm việc của bạn, hãy thiết lập nó với một số rất lớn, ví dụ:

# Install (if necessary) and load packages for use pacman::p_load(rio, tidyverse, here)

9

Làm tròn

NGUY HIỂM: Hàm

# Create an age pyramid age_pyramid(data = linelist, age_group = "age_cat5", split_by = "gender")

07 sử dụng “cách làm tròn của ngân hàng” nghĩa là chỉ làm tròn với số .5 nếu số được làm tròn lên là số chẵn. Sử dụng hàm

# Create an age pyramid age_pyramid(data = linelist, age_group = "age_cat5", split_by = "gender")

13 từ package janitor để thống nhất cách làm tròn với giá trị .5. Xem thêm

# install/load the epicontacts package from its Github repository p_load_gh("reconhub/epicontacts")

0

# install/load the epicontacts package from its Github repository p_load_gh("reconhub/epicontacts")

1

# install/load the epicontacts package from its Github repository p_load_gh("reconhub/epicontacts")

2

Các hàm thống kê

CẨN TRỌNG: Các hàm sau đây sẽ mặc định bao gồm cả giá trị missing khi tính toán. Giá trị missing sẽ trả về kết quả đầu ra chứa

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

96, trừ khi đối số

# Create an age pyramid age_pyramid(data = linelist, age_group = "age_cat5", split_by = "gender")

15 được xác định khi viết hàm. Nó cũng có thể viết ngắn gọn thành

# Create an age pyramid age_pyramid(data = linelist, age_group = "age_cat5", split_by = "gender")

16.

Mục đích Hàm trung bình mean(x, na.rm=T) trung vị median(x, na.rm=T) độ lệch chuẩn sd(x, na.rm=T) phân vị* quantile(x, probs) tổng sum(x, na.rm=T) giá trị nhỏ nhất min(x, na.rm=T) giá trị lớn nhất max(x, na.rm=T) khoảng giá trị số range(x, na.rm=T) tóm tắt** summary(x)

Notes:

  • Create an age pyramid

    age_pyramid(data = linelist, age_group = "age_cat5", split_by = "gender")

    17:

    Create an age pyramid

    age_pyramid(data = linelist, age_group = "age_cat5", split_by = "gender")

    18 là vectơ số cần khảo sát, và

    Create an age pyramid

    age_pyramid(data = linelist, age_group = "age_cat5", split_by = "gender")

    19 là một vectơ số với các xác suất nằm giữa 0 và 1.0, ví dụ

    Create an age pyramid

    age_pyramid(data = linelist, age_group = "age_cat5", split_by = "gender")
    20
  • Create an age pyramid

    age_pyramid(data = linelist, age_group = "age_cat5", split_by = "gender")
    21: trả về tóm tắt một vectơ số bao gồm giá trị trung bình, trung vị, và các khoảng phân vị thường gặp

NGUY HIỂM: Nếu cung cấp một vectơ số cho một trong các hàm trên, hãy đảm bảo các số được đặt trong hàm

# Print summary statistics of column 'age' in the dataset 'linelist' summary(linelist$age)

32 .

# install/load the epicontacts package from its Github repository p_load_gh("reconhub/epicontacts")

3

# install/load the epicontacts package from its Github repository p_load_gh("reconhub/epicontacts")

4

# install/load the epicontacts package from its Github repository p_load_gh("reconhub/epicontacts")

5

# install/load the epicontacts package from its Github repository p_load_gh("reconhub/epicontacts")

6

Một số hàm hữu ích khác

Mục đích Hàm Ví dụ Tạo chuỗi số liên tục seq(from, to, by)

# Create an age pyramid age_pyramid(data = linelist, age_group = "age_cat5", split_by = "gender")

23 lặp x, n lần rep(x, ntimes)

# Create an age pyramid age_pyramid(data = linelist, age_group = "age_cat5", split_by = "gender")

24 or

# Create an age pyramid age_pyramid(data = linelist, age_group = "age_cat5", split_by = "gender")

25 chia nhỏ một vectơ số cut(x, n)

# Create an age pyramid age_pyramid(data = linelist, age_group = "age_cat5", split_by = "gender")

26 lấy một mẫu ngẫu nhiên sample(x, size)

# Create an age pyramid age_pyramid(data = linelist, age_group = "age_cat5", split_by = "gender")

27

# Create an age pyramid age_pyramid(data = linelist, age_group = "age_cat5", split_by = "gender")

28

Một toán tử rất hữu ích để nhanh chóng đánh giá xem một giá trị có nằm trong một vectơ hoặc một dataframe hay không.

# install/load the epicontacts package from its Github repository p_load_gh("reconhub/epicontacts")

7

# install/load the epicontacts package from its Github repository p_load_gh("reconhub/epicontacts")

8

# install/load the epicontacts package from its Github repository p_load_gh("reconhub/epicontacts")

9

Để truy vấn một giá trị không

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

42 một vectơ, hãy đặt dấu chấm than (!) phía trước biểu thức logic:

# install the "timeline" branch of the epicontacts package from Github p_load_gh("reconhub/epicontacts@timeline")

0

# install/load the epicontacts package from its Github repository p_load_gh("reconhub/epicontacts")

9

# install/load the epicontacts package from its Github repository p_load_gh("reconhub/epicontacts")

8

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

42 sẽ rất hữu dụng khi dùng hàm

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    6.00   13.00   16.07   23.00   84.00      86

92 của package dplyr. Bạn có thể định nghĩa một vectơ trước đó, sau đó tham chiếu đến nó. ví dụ:

# install the "timeline" branch of the epicontacts package from Github p_load_gh("reconhub/epicontacts@timeline")

3

Lưu ý: Nếu bạn muốn phát hiện một phần của chuỗi, có lẽ việc sử dụng hàm

# Create an age pyramid age_pyramid(data = linelist, age_group = "age_cat5", split_by = "gender")

32 từ package stringr, sẽ không chấp nhận một vectơ ký tự kiểu như

# Create an age pyramid age_pyramid(data = linelist, age_group = "age_cat5", split_by = "gender")

33. Thay vào đó, nó cần được cung cấp dưới dạng một biểu thức chính quy - một chuối cô đọng với thanh dọc cho phép so sánh OR, chẳng hạn như “1|Yes|yes|y”. Ví dụ,

# Create an age pyramid age_pyramid(data = linelist, age_group = "age_cat5", split_by = "gender")

34. Xem thêm chương để biết thêm chi tiết.

Bạn có thể chuyển đổi một vectơ ký tự thành một biểu thức chính quy được đặt tên bằng lệnh này:

# install the "timeline" branch of the epicontacts package from Github p_load_gh("reconhub/epicontacts@timeline")

4

# install the "timeline" branch of the epicontacts package from Github p_load_gh("reconhub/epicontacts@timeline")

5

# install the "timeline" branch of the epicontacts package from Github p_load_gh("reconhub/epicontacts@timeline")

6

# install the "timeline" branch of the epicontacts package from Github p_load_gh("reconhub/epicontacts@timeline")

7

Lỗi và cảnh báo

Phần này giải thích:

  • Sự khác biệt giữa lỗi và cảnh báo
  • Mẹo cú pháp chung để viết code R
  • Trợ giúp viết code

Các lỗi thường gặp và cảnh báo cũng như mẹo khắc phục sự cố có thể được tìm thấy trong chương .

Lỗi và Cảnh báo

Khi một lệnh được thực thi, cửa sổ R Console có thể hiển thị cho bạn cảnh báo hoặc thông báo lỗi bằng văn bản màu đỏ.

  • Một cảnh báo nghĩa là R đã hoàn thành lệnh của bạn, nhưng phải thực hiện các bước bổ sung hoặc tạo ra kết quả bất thường mà bạn cần lưu ý.
  • Một lỗi nghĩa là R không thể hoàn thành lệnh của bạn.

Tìm manh mối:

  • Thông báo lỗi/cảnh báo thường sẽ bao gồm số dòng xảy ra sự cố.
  • Nếu một đối tượng “không xác định được (is unknown)” hoặc “không tìm thấy (not found)”, có lẽ bạn đã viết sai chính tả, quên gọi một package bằng hàm library(), hoặc quên chạy lại tập lệnh của bạn sau khi thực hiện các thay đổi.

Nếu vẫn thất bại, hãy sao chép thông báo lỗi vào Google cùng với một số từ khóa chính - rất có thể ai đó cũng đã gặp lỗi này rồi!

Mẹo cú pháp chung

Một số điều cần nhớ khi viết lệnh trong R, để tránh lỗi và cảnh báo:

  • Luôn đóng dấu ngoặc đơn - mẹo: đếm số lần mở dấu ngoặc đơn “(” và đóng dấu ngoặc đơn “)” cho mỗi đoạn mã
  • Tránh để khoảng trắng trong tên cột và đối tượng. Thay vào đó, hãy sử dụng dấu gạch dưới (_) hoặc dấu chấm (.)
  • Theo dõi và nhớ tách các đối số của hàm bằng dấu phẩy
  • R phân biệt chữ hoa và chữ thường, nghĩa là

    Create an age pyramid

    age_pyramid(data = linelist, age_group = "age_cat5", split_by = "gender")

    35 khác với

    Create an age pyramid

    age_pyramid(data = linelist, age_group = "age_cat5", split_by = "gender")
    36

Trợ giúp viết code

Bất kỳ tập lệnh nào (RMarkdown hoặc những cái khác) sẽ cung cấp manh mối khi bạn mắc lỗi. Ví dụ: nếu bạn quên viết dấu phẩy ở vị trí cần thiết hoặc quên đóng dấu ngoặc đơn, RStudio sẽ treo cờ trên dòng đó, ở phía bên trái của script, để cảnh báo bạn.