Hàm r norm trong r có nghĩa là gì

Chương này minh họa cách sử dụng các package janitor, dplyr, gtsummary, rstatix, và base R để tóm tắt dữ liệu và tạo bảng với thống kê mô tả.

Show

Chương này bao gồm cách để tạo bảng cơ bản, trong khi đó chương bao gồm cách để định dạng đẹp và in chúng.*

Mỗi package này đều có những ưu và nhược điểm trong từng khía cạnh như sự đơn giản, khả năng tiếp cận kết quả, chất lượng kết quả được hiển thị. Sử dụng chương này để quyết định cách tiếp cận nào phù hợp với trường hợp của bạn.

Bạn có một số lựa chọn khi tạo bảng tóm tắt và bảng chéo. Một số yếu tố cần xem xét bao gồm tính đơn giản của code, khả năng tùy chỉnh, đầu ra mong muốn (được in ra R console, dưới dạng dataframe hoặc dưới dạng hình ảnh “đẹp” .png/.jpeg /.html) và dễ xử lý hậu kỳ. Hãy xem xét các điểm dưới đây khi bạn chọn công cụ cho tình huống của mình.

  • Dùng

    # A tibble: 5 x 10

    variable n min max median iqr mean sd se ci

    1 age 5802 0 84 13 17 16.1 12.6 0.166 0.325

    2 ct_blood 5888 16 26 22 2 21.2 1.69 0.022 0.043

    3 ht_cm 5888 4 295 129 68 125. 49.5 0.645 1.26

    4 temp 5739 35.2 40.8 38.8 1 38.6 0.977 0.013 0.025

    5 wt_kg 5888 -11 111 54 25 52.6 18.6 0.242 0.475

    0 từ janitor để tạo và “làm đẹp” cho bảng và bảng chéo
  • Dùng

    # A tibble: 5 x 10

    variable n min max median iqr mean sd se ci

    1 age 5802 0 84 13 17 16.1 12.6 0.166 0.325

    2 ct_blood 5888 16 26 22 2 21.2 1.69 0.022 0.043

    3 ht_cm 5888 4 295 129 68 125. 49.5 0.645 1.26

    4 temp 5739 35.2 40.8 38.8 1 38.6 0.977 0.013 0.025

    5 wt_kg 5888 -11 111 54 25 52.6 18.6 0.242 0.475

    1 từ rstatix để dễ dàng tạo data frame các tóm tắt thống kê dạng số cho nhiều cột và / hoặc nhóm
  • Dùng

    # A tibble: 5 x 10

    variable n min max median iqr mean sd se ci

    1 age 5802 0 84 13 17 16.1 12.6 0.166 0.325

    2 ct_blood 5888 16 26 22 2 21.2 1.69 0.022 0.043

    3 ht_cm 5888 4 295 129 68 125. 49.5 0.645 1.26

    4 temp 5739 35.2 40.8 38.8 1 38.6 0.977 0.013 0.025

    5 wt_kg 5888 -11 111 54 25 52.6 18.6 0.242 0.475

    2 và

    # A tibble: 5 x 10

    variable n min max median iqr mean sd se ci

    1 age 5802 0 84 13 17 16.1 12.6 0.166 0.325

    2 ct_blood 5888 16 26 22 2 21.2 1.69 0.022 0.043

    3 ht_cm 5888 4 295 129 68 125. 49.5 0.645 1.26

    4 temp 5739 35.2 40.8 38.8 1 38.6 0.977 0.013 0.025

    5 wt_kg 5888 -11 111 54 25 52.6 18.6 0.242 0.475

    3 từ dplyr dành choo các thống kê phức tạp hơn, đầu ra của tidy dataframe hoặc chuẩn bị dữ liệu cho

    # A tibble: 5 x 10

    variable n min max median iqr mean sd se ci

    1 age 5802 0 84 13 17 16.1 12.6 0.166 0.325

    2 ct_blood 5888 16 26 22 2 21.2 1.69 0.022 0.043

    3 ht_cm 5888 4 295 129 68 125. 49.5 0.645 1.26

    4 temp 5739 35.2 40.8 38.8 1 38.6 0.977 0.013 0.025

    5 wt_kg 5888 -11 111 54 25 52.6 18.6 0.242 0.475

    4
  • Dùng

    # A tibble: 5 x 10

    variable n min max median iqr mean sd se ci

    1 age 5802 0 84 13 17 16.1 12.6 0.166 0.325

    2 ct_blood 5888 16 26 22 2 21.2 1.69 0.022 0.043

    3 ht_cm 5888 4 295 129 68 125. 49.5 0.645 1.26

    4 temp 5739 35.2 40.8 38.8 1 38.6 0.977 0.013 0.025

    5 wt_kg 5888 -11 111 54 25 52.6 18.6 0.242 0.475

    5 từ gtsummary để tạo ra các bảng chi tiết sẵn sàng xuất bản
  • Dùng

    # A tibble: 5 x 10

    variable n min max median iqr mean sd se ci

    1 age 5802 0 84 13 17 16.1 12.6 0.166 0.325

    2 ct_blood 5888 16 26 22 2 21.2 1.69 0.022 0.043

    3 ht_cm 5888 4 295 129 68 125. 49.5 0.645 1.26

    4 temp 5739 35.2 40.8 38.8 1 38.6 0.977 0.013 0.025

    5 wt_kg 5888 -11 111 54 25 52.6 18.6 0.242 0.475

    6 từ base R nếu bạn không có khả năng truy cập vào các package trên

Chuẩn bị

Gọi packages

Đoạn code này hiển thị việc gọi các packages cần thiết cho các phân tích. Trong sổ tay này, chúng tôi nhấn mạnh đến lệnh

## # A tibble: 5 x 10
##   variable     n   min   max median   iqr  mean     sd    se    ci
##                 
## 1 age       5802   0    84     13      17  16.1 12.6   0.166 0.325
## 2 ct_blood  5888  16    26     22       2  21.2  1.69  0.022 0.043
## 3 ht_cm     5888   4   295    129      68 125.  49.5   0.645 1.26 
## 4 temp      5739  35.2  40.8   38.8     1  38.6  0.977 0.013 0.025
## 5 wt_kg     5888 -11   111     54      25  52.6 18.6   0.242 0.475

7 từ pacman, giúp cài đặt các package nếu cần và gọi chúng để sử dụng. Bạn cũng có thể gọi các package đã được cài đặt với

## # A tibble: 5 x 10
##   variable     n   min   max median   iqr  mean     sd    se    ci
##                 
## 1 age       5802   0    84     13      17  16.1 12.6   0.166 0.325
## 2 ct_blood  5888  16    26     22       2  21.2  1.69  0.022 0.043
## 3 ht_cm     5888   4   295    129      68 125.  49.5   0.645 1.26 
## 4 temp      5739  35.2  40.8   38.8     1  38.6  0.977 0.013 0.025
## 5 wt_kg     5888 -11   111     54      25  52.6 18.6   0.242 0.475

8 từ base R. Xem chương để biết thêm thông tin về các package của R.

pacman::p_load( rio, # File import here, # File locator skimr, # get overview of data tidyverse, # data management + ggplot2 graphics gtsummary, # summary statistics and tests rstatix, # summary statistics and statistical tests janitor, # adding totals and percents to tables scales, # easily convert proportions to percents flextable # converting tables to pretty images )

Nhập dữ liệu

Chúng ta sẽ nhập bộ dữ liệu về các trường hợp từ một vụ dịch Ebola mô phỏng. Nếu bạn muốn theo dõi, bấm để tải xuống dữ liệu linelist “đã làm sạch” (as .rds file). Nhập dữ liệu của bạn bằng hàm

## # A tibble: 5 x 10
##   variable     n   min   max median   iqr  mean     sd    se    ci
##                 
## 1 age       5802   0    84     13      17  16.1 12.6   0.166 0.325
## 2 ct_blood  5888  16    26     22       2  21.2  1.69  0.022 0.043
## 3 ht_cm     5888   4   295    129      68 125.  49.5   0.645 1.26 
## 4 temp      5739  35.2  40.8   38.8     1  38.6  0.977 0.013 0.025
## 5 wt_kg     5888 -11   111     54      25  52.6 18.6   0.242 0.475

9 từ package rio (chấp nhận nhiều loại tệp như .xlsx, .rds, .csv - xem thêm chi tiết tại chương ).

# import the linelist linelist <- import("linelist_cleaned.rds")

50 hàng đầu tiên của linelist được hiển thị như dưới đây.

Duyệt dữ liệu

skimr package

Khi sử dụng package skimr package, bạn có thể có được cái nhìn tổng quan chi tiết và đẹp về mặt thẩm mỹ của từng biến trong tập dữ liệu của mình. Đọc thêm về skimr tại trang github của nhà phát triển.

Dưới đây, hàm

# import the linelist linelist <- import("linelist_cleaned.rds")

00 được áp dụng cho toàn bộ data frame

# import the linelist linelist <- import("linelist_cleaned.rds")

01 giúp bạn có cái nhìn tổng quan về data frame và tóm tắt của tất cả các cột (theo lớp).

## get information about each variable in a dataset skim(linelist)

Table 17.1: Data summary Name linelist Number of rows 5888 Number of columns 30 _______________________ Column type frequency: character 13 Date 4 factor 2 numeric 11 ________________________ Group variables None

Variable type: character

skim_variable n_missing complete_rate min max empty n_unique whitespace case_id 0 1.00 6 6 0 5888 0 outcome 1323 0.78 5 7 0 2 0 gender 278 0.95 1 1 0 2 0 age_unit 0 1.00 5 6 0 2 0 hospital 0 1.00 5 36 0 6 0 infector 2088 0.65 6 6 0 2697 0 source 2088 0.65 5 7 0 2 0 fever 249 0.96 2 3 0 2 0 chills 249 0.96 2 3 0 2 0 cough 249 0.96 2 3 0 2 0 aches 249 0.96 2 3 0 2 0 vomit 249 0.96 2 3 0 2 0 time_admission 765 0.87 5 5 0 1072 0

Variable type: Date

skim_variable n_missing complete_rate min max median n_unique date_infection 2087 0.65 2014-03-19 2015-04-27 2014-10-11 359 date_onset 256 0.96 2014-04-07 2015-04-30 2014-10-23 367 date_hospitalisation 0 1.00 2014-04-17 2015-04-30 2014-10-23 363 date_outcome 936 0.84 2014-04-19 2015-06-04 2014-11-01 371

Variable type: factor

skim_variable n_missing complete_rate ordered n_unique top_counts age_cat 86 0.99 FALSE 8 0-4: 1095, 5-9: 1095, 20-: 1073, 10-: 941 age_cat5 86 0.99 FALSE 17 0-4: 1095, 5-9: 1095, 10-: 941, 15-: 743

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 generation 0 1.00 16.56 5.79 0.00 13.00 16.00 20.00 37.00 age 86 0.99 16.07 12.62 0.00 6.00 13.00 23.00 84.00 age_years 86 0.99 16.02 12.64 0.00 6.00 13.00 23.00 84.00 lon 0 1.00 -13.23 0.02 -13.27 -13.25 -13.23 -13.22 -13.21 lat 0 1.00 8.47 0.01 8.45 8.46 8.47 8.48 8.49 wt_kg 0 1.00 52.64 18.58 -11.00 41.00 54.00 66.00 111.00 ht_cm 0 1.00 124.96 49.52 4.00 91.00 129.00 159.00 295.00 ct_blood 0 1.00 21.21 1.69 16.00 20.00 22.00 22.00 26.00 temp 149 0.97 38.56 0.98 35.20 38.20 38.80 39.20 40.80 bmi 0 1.00 46.89 55.39 -1200.00 24.56 32.12 50.01 1250.00 days_onset_hosp 256 0.96 2.06 2.26 0.00 1.00 1.00 3.00 22.00

Bạn cũng có thể sử dụng hàm

# import the linelist linelist <- import("linelist_cleaned.rds")

02 từ base R, để lấy thông tin về toàn bộ tập dữ liệu, nhưng kết quả đầu ra có thể khó đọc hơn so với sử dụng skimr. Do đó, kết quả không được hiển thị bên dưới để tiết kiệm không gian trang.

## get information about each column in a dataset summary(linelist)

Thống kê tóm tắt

Bạn có thể sử dụng các hàm base R để trả về thống kê tóm tắt trên một cột dữ liệu dạng số. Bạn có thể trả về hầu hết các thống kê tóm tắt hữu ích cho một cột dạng số bằng cách sử dụng hàm

# import the linelist linelist <- import("linelist_cleaned.rds")

02, như dưới đây. Lưu ý rằng tên data frame cũng phải được xác định như hình dưới đây.

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

Bạn có thể truy cập và lưu một phần cụ thể của nó bằng dấu ngoặc vuông [ ]:

summary(linelist$age_years)[[2]] # return only the 2nd element

## [1] 6

`# equivalent, alternative to above by element name

summary(linelist$age_years)[["1st Qu."]] `

Bạn có thể trả về các thống kê riêng lẻ với các hàm base R như

# import the linelist linelist <- import("linelist_cleaned.rds")

04,

# import the linelist linelist <- import("linelist_cleaned.rds")

05,

# import the linelist linelist <- import("linelist_cleaned.rds")

06,

# import the linelist linelist <- import("linelist_cleaned.rds")

07,

# import the linelist linelist <- import("linelist_cleaned.rds")

08,

# import the linelist linelist <- import("linelist_cleaned.rds")

09, và

# import the linelist linelist <- import("linelist_cleaned.rds")

10. Xem chương để có danh sách đầy đủ.

THẬN TRỌNG: Nếu dữ liệu của bạn chứa các giá trị missing, R muốn bạn biết điều này và do đó sẽ trả về

# import the linelist linelist <- import("linelist_cleaned.rds")

11 trừ khi bạn chỉ định cho các hàm toán học ở trên mà bạn muốn R bỏ qua các giá trị bị thiếu, thông qua đối số

# import the linelist linelist <- import("linelist_cleaned.rds")

12.

Bạn có thể sử dụng hàm

## # A tibble: 5 x 10
##   variable     n   min   max median   iqr  mean     sd    se    ci
##                 
## 1 age       5802   0    84     13      17  16.1 12.6   0.166 0.325
## 2 ct_blood  5888  16    26     22       2  21.2  1.69  0.022 0.043
## 3 ht_cm     5888   4   295    129      68 125.  49.5   0.645 1.26 
## 4 temp      5739  35.2  40.8   38.8     1  38.6  0.977 0.013 0.025
## 5 wt_kg     5888 -11   111     54      25  52.6 18.6   0.242 0.475

1 từ package rstatix để trả về thống kê tóm tắt ở định dạng data frame. Điều này có thể hữu ích cho việc thực hiện các hoạt động tiếp theo hoặc vẽ biểu đồ trên các con số. Xem chương để biết thêm chi tiết về package rstatix và các hàm của nó.

`linelist %>% get_summary_stats(

age, wt_kg, ht_cm, ct_blood, temp,  # columns to calculate for
type = "common")                    # summary stats to return`
## # A tibble: 5 x 10
##   variable     n   min   max median   iqr  mean     sd    se    ci
##                 
## 1 age       5802   0    84     13      17  16.1 12.6   0.166 0.325
## 2 ct_blood  5888  16    26     22       2  21.2  1.69  0.022 0.043
## 3 ht_cm     5888   4   295    129      68 125.  49.5   0.645 1.26 
## 4 temp      5739  35.2  40.8   38.8     1  38.6  0.977 0.013 0.025
## 5 wt_kg     5888 -11   111     54      25  52.6 18.6   0.242 0.475

janitor package

Package janitor cung cấp hàm

## # A tibble: 5 x 10
##   variable     n   min   max median   iqr  mean     sd    se    ci
##                 
## 1 age       5802   0    84     13      17  16.1 12.6   0.166 0.325
## 2 ct_blood  5888  16    26     22       2  21.2  1.69  0.022 0.043
## 3 ht_cm     5888   4   295    129      68 125.  49.5   0.645 1.26 
## 4 temp      5739  35.2  40.8   38.8     1  38.6  0.977 0.013 0.025
## 5 wt_kg     5888 -11   111     54      25  52.6 18.6   0.242 0.475

0 giúp tạo ra các bảng đơn và bảng chéo, có thể được “tô điểm” hoặc sửa đổi bằng các hàm trợ giúp để hiển thị phần trăm, tỷ lệ, số đếm, v.v.

Sau đây, chúng ta sẽ pipe

# import the linelist linelist <- import("linelist_cleaned.rds")

01 data frame tới các hàm của janitor và in kết quả. Nếu muốn, bạn cũng có thể lưu các bảng kết quả bằng toán tử gán

# import the linelist linelist <- import("linelist_cleaned.rds")

16.

tabyl đơn giản

Cách sử dụng mặc định của hàm

## # A tibble: 5 x 10
##   variable     n   min   max median   iqr  mean     sd    se    ci
##                 
## 1 age       5802   0    84     13      17  16.1 12.6   0.166 0.325
## 2 ct_blood  5888  16    26     22       2  21.2  1.69  0.022 0.043
## 3 ht_cm     5888   4   295    129      68 125.  49.5   0.645 1.26 
## 4 temp      5739  35.2  40.8   38.8     1  38.6  0.977 0.013 0.025
## 5 wt_kg     5888 -11   111     54      25  52.6 18.6   0.242 0.475

0 trên một cột cụ thể tạo ra các giá trị duy nhất, số lượng và “phần trăm” (tỷ lệ thực tế) theo cột. Tỷ lệ có thể có nhiều chữ số thập phân. Bạn có thể điều chỉnh số lượng số thập phân với hàm

# import the linelist linelist <- import("linelist_cleaned.rds")

18 như được mô tả bên dưới.

# import the linelist linelist <- import("linelist_cleaned.rds")

0

# import the linelist linelist <- import("linelist_cleaned.rds")

1

Như bạn có thể thấy ở trên, các giá trị missing sẽ được hiển thị trong một hàng có nhãn

# import the linelist linelist <- import("linelist_cleaned.rds")

19. Bạn có thể ngăn điều này bằng cách thêm

# import the linelist linelist <- import("linelist_cleaned.rds")

20. Nếu không có giá trị missing, hàng này sẽ không xuất hiện. Nếu có giá trị missing, tất cả các tỷ lệ sẽ được trình bày dưới dạng thô (mẫu số bao gồm cả

# import the linelist linelist <- import("linelist_cleaned.rds")

  1. và “hợp lý” (mẫu số không bao gồm

# import the linelist linelist <- import("linelist_cleaned.rds")

11).

Nếu giá trị cột là dạng Factor và chỉ một vài level nhất định có trong dữ liệu của bạn, thì tất cả các level sẽ vẫn xuất hiện trong bảng. Bạn có thể loại bỏ tính năng này bằng cách thêm

# import the linelist linelist <- import("linelist_cleaned.rds")

23. Đọc thêm trong chương .

Bảng chéo

Bảng chéo được tạo bằng cách thêm một hoặc nhiều cột vào hàm

## # A tibble: 5 x 10
##   variable     n   min   max median   iqr  mean     sd    se    ci
##                 
## 1 age       5802   0    84     13      17  16.1 12.6   0.166 0.325
## 2 ct_blood  5888  16    26     22       2  21.2  1.69  0.022 0.043
## 3 ht_cm     5888   4   295    129      68 125.  49.5   0.645 1.26 
## 4 temp      5739  35.2  40.8   38.8     1  38.6  0.977 0.013 0.025
## 5 wt_kg     5888 -11   111     54      25  52.6 18.6   0.242 0.475

0. Lưu ý rằng bây giờ chỉ có số lượng được hiện thị - tỷ lệ và phần trăm có thể được thêm vào bằng các bước bổ sung sẽ được trình bày bên dưới.

# import the linelist linelist <- import("linelist_cleaned.rds")

2

# import the linelist linelist <- import("linelist_cleaned.rds")

3

“Tô điểm” cho tabyl

Sử dụng các hàm “tô điểm” của janitor để thêm tổng hoặc chuyển đổi thành tỷ lệ, phần trăm hoặc điều chỉnh hiển thị. Thông thường, bạn sẽ pipe tabyl thông qua một số hàm này..

Hàm Đầu ra

# import the linelist linelist <- import("linelist_cleaned.rds")

25 Thêm tổng (

# import the linelist linelist <- import("linelist_cleaned.rds")

26 “row”, “col”, or “both”). Đặt

# import the linelist linelist <- import("linelist_cleaned.rds")

27 cho “Tổng”.

# import the linelist linelist <- import("linelist_cleaned.rds")

28 Chuyển đổi số lượng thành tỷ lệ, với

# import the linelist linelist <- import("linelist_cleaned.rds")

29 “row”, “col”, hoặc “all”

# import the linelist linelist <- import("linelist_cleaned.rds")

30 Chuyển đổi tỷ lệ thành tỷ lệ phần trăm. Chỉ rõ

# import the linelist linelist <- import("linelist_cleaned.rds")

31. Loại bỏ ký hiệu “%” bằng

# import the linelist linelist <- import("linelist_cleaned.rds")

32.

# import the linelist linelist <- import("linelist_cleaned.rds")

18 Làm tròn tỷ lệ bằng

# import the linelist linelist <- import("linelist_cleaned.rds")

31. Để làm tròn tỷ lệ phần trăm, sử dụng hàm

# import the linelist linelist <- import("linelist_cleaned.rds")

30 với

# import the linelist linelist <- import("linelist_cleaned.rds")

31.

# import the linelist linelist <- import("linelist_cleaned.rds")

37 Thêm số lượng vào bảng tỷ lệ hoặc phần trăm. Chỉ định

# import the linelist linelist <- import("linelist_cleaned.rds")

38 “rear” để hiện thị số lượng trong ngoặc đơn, hoặc “front” để đặt phần trăm vào trong ngoặc đơn.

# import the linelist linelist <- import("linelist_cleaned.rds")

39 Thêm tiều đề thông qua đối số

# import the linelist linelist <- import("linelist_cleaned.rds")

40 và/hoặc

# import the linelist linelist <- import("linelist_cleaned.rds")

41

Hãy cẩn trọng về thứ tự bạn áp dụng các hàm trên. Dưới đây là một số ví dụ.

Bảng một chiều đơn giản với phần trăm thay vì tỷ lệ mặc định.

# import the linelist linelist <- import("linelist_cleaned.rds")

4

# import the linelist linelist <- import("linelist_cleaned.rds")

5

Bảng chéo với tổng hàng và phần trăm hàng.

# import the linelist linelist <- import("linelist_cleaned.rds")

6

# import the linelist linelist <- import("linelist_cleaned.rds")

7

Bảng chéo được điều chỉnh để cả số lượng và phần trăm đều được hiển thị.

# import the linelist linelist <- import("linelist_cleaned.rds")

8

# import the linelist linelist <- import("linelist_cleaned.rds")

9

In với tabyl

Theo mặc định, lệnh tabyl sẽ in kết quả thô vào R console của bạn.

Ngoài ra, bạn có thể chuyển tabyl sang flextable hoặc package tương tự để in dưới dạng hình ảnh “đẹp” trong RStudio Viewer, có thể được xuất dưới dạng .png, .jpeg, .html, v.v. Điều này đã được thảo luận trong chương Trình bày bảng . Lưu ý rằng nếu in theo cách này và sử dụng

# import the linelist linelist <- import("linelist_cleaned.rds")

42, bạn cần thêm vào

# import the linelist linelist <- import("linelist_cleaned.rds")

43.

## get information about each variable in a dataset skim(linelist)

0

Age Category/Gender

f

m

NA_

Total

0-4

640 (22.8%)

416 (14.8%)

39 (14.0%)

1095 (18.6%)

5-9

641 (22.8%)

412 (14.7%)

42 (15.1%)

1095 (18.6%)

10-14

518 (18.5%)

383 (13.7%)

40 (14.4%)

941 (16.0%)

15-19

359 (12.8%)

364 (13.0%)

20 (7.2%)

743 (12.6%)

20-29

468 (16.7%)

575 (20.5%)

30 (10.8%)

1073 (18.2%)

30-49

179 (6.4%)

557 (19.9%)

18 (6.5%)

754 (12.8%)

50-69

2 (0.1%)

91 (3.2%)

2 (0.7%)

95 (1.6%)

70+

0 (0.0%)

5 (0.2%)

1 (0.4%)

6 (0.1%)

0 (0.0%)

0 (0.0%)

86 (30.9%)

86 (1.5%)

Sử dụng trên các bảng khác

Bạn có thể sử dụng các hàm

# import the linelist linelist <- import("linelist_cleaned.rds")

44 của janitor lên các bảng khác, chẳng hạn các bảng được tạo bởi hàm

## # A tibble: 5 x 10
##   variable     n   min   max median   iqr  mean     sd    se    ci
##                 
## 1 age       5802   0    84     13      17  16.1 12.6   0.166 0.325
## 2 ct_blood  5888  16    26     22       2  21.2  1.69  0.022 0.043
## 3 ht_cm     5888   4   295    129      68 125.  49.5   0.645 1.26 
## 4 temp      5739  35.2  40.8   38.8     1  38.6  0.977 0.013 0.025
## 5 wt_kg     5888 -11   111     54      25  52.6 18.6   0.242 0.475

2 và

## # A tibble: 5 x 10
##   variable     n   min   max median   iqr  mean     sd    se    ci
##                 
## 1 age       5802   0    84     13      17  16.1 12.6   0.166 0.325
## 2 ct_blood  5888  16    26     22       2  21.2  1.69  0.022 0.043
## 3 ht_cm     5888   4   295    129      68 125.  49.5   0.645 1.26 
## 4 temp      5739  35.2  40.8   38.8     1  38.6  0.977 0.013 0.025
## 5 wt_kg     5888 -11   111     54      25  52.6 18.6   0.242 0.475

3 của dplyr, hoặc

## # A tibble: 5 x 10
##   variable     n   min   max median   iqr  mean     sd    se    ci
##                 
## 1 age       5802   0    84     13      17  16.1 12.6   0.166 0.325
## 2 ct_blood  5888  16    26     22       2  21.2  1.69  0.022 0.043
## 3 ht_cm     5888   4   295    129      68 125.  49.5   0.645 1.26 
## 4 temp      5739  35.2  40.8   38.8     1  38.6  0.977 0.013 0.025
## 5 wt_kg     5888 -11   111     54      25  52.6 18.6   0.242 0.475

6 từ base R. Đơn giản chỉ cần pipe bảng đến hàm mong muốn của package janitor. Ví dụ:

## get information about each variable in a dataset skim(linelist)

1

## get information about each variable in a dataset skim(linelist)

2

Lưu với tabyl

Nếu bạn muốn chuyển đổi bảng thành một hình ảnh “đẹp” với package flextable, bạn có thể lưu nó bằng các hàm như

# import the linelist linelist <- import("linelist_cleaned.rds")

48,

# import the linelist linelist <- import("linelist_cleaned.rds")

49,

# import the linelist linelist <- import("linelist_cleaned.rds")

50, và

# import the linelist linelist <- import("linelist_cleaned.rds")

51 từ package flextable (sẽ được bàn luận kỹ hơn ở chương ). Ví dụ dưới đây, bảng được lưu lại dưới dạng tệp Word, và có khả năng chỉnh sửa được.

## get information about each variable in a dataset skim(linelist)

3

Hàm r norm trong r có nghĩa là gì

Thống kê

Bạn có thể áp dụng các kiểm định thống kê bằng tabyls, ví dụ như

# import the linelist linelist <- import("linelist_cleaned.rds")

52 hoặc

# import the linelist linelist <- import("linelist_cleaned.rds")

53 từ package stats, như được trình bày dưới đây. Chú ý là giá trị missing không được cho phép vì vậy chúng được loại bỏ khỏi tabyl bằng tùy chọn

# import the linelist linelist <- import("linelist_cleaned.rds")

20.

## get information about each variable in a dataset skim(linelist)

4

## get information about each variable in a dataset skim(linelist)

5

Xem chương để có thêm code và các mẹo liên quan đến thống kê.

Các mẹo khác

  • Thêm đối số

    import the linelist

    linelist <- import("linelist_cleaned.rds")
    12 để loại bỏ các giá trị missing.
  • Nếu áp dụng bất kỳ hàm trợ giúp

    import the linelist

    linelist <- import("linelist_cleaned.rds")

    44 nào cho các bảng không được tạo bởi

    # A tibble: 5 x 10

    variable n min max median iqr mean sd se ci

    1 age 5802 0 84 13 17 16.1 12.6 0.166 0.325

    2 ct_blood 5888 16 26 22 2 21.2 1.69 0.022 0.043

    3 ht_cm 5888 4 295 129 68 125. 49.5 0.645 1.26

    4 temp 5739 35.2 40.8 38.8 1 38.6 0.977 0.013 0.025

    5 wt_kg 5888 -11 111 54 25 52.6 18.6 0.242 0.475

    0, bạn có thể chỉ định (các) cột cụ thể để áp dụng chúng chẳng hạn như

    import the linelist

    linelist <- import("linelist_cleaned.rds")

    58 (chỉ định chúng cho đối số không tên thứ 4). Thay vào đó, hãy cân nhắc sử dụng hàm

    # A tibble: 5 x 10

    variable n min max median iqr mean sd se ci

    1 age 5802 0 84 13 17 16.1 12.6 0.166 0.325

    2 ct_blood 5888 16 26 22 2 21.2 1.69 0.022 0.043

    3 ht_cm 5888 4 295 129 68 125. 49.5 0.645 1.26

    4 temp 5739 35.2 40.8 38.8 1 38.6 0.977 0.013 0.025

    5 wt_kg 5888 -11 111 54 25 52.6 18.6 0.242 0.475

    2.
  • Bạn có thể tìm đọc thêm ở janitor page và tabyl vignette.

dplyr package

dplyr là một phần của package tidyverse và là một công cụ quản lý dữ liệu rất phổ biến. Tạo bảng với các hàm của dplyr như

## # A tibble: 5 x 10
##   variable     n   min   max median   iqr  mean     sd    se    ci
##                 
## 1 age       5802   0    84     13      17  16.1 12.6   0.166 0.325
## 2 ct_blood  5888  16    26     22       2  21.2  1.69  0.022 0.043
## 3 ht_cm     5888   4   295    129      68 125.  49.5   0.645 1.26 
## 4 temp      5739  35.2  40.8   38.8     1  38.6  0.977 0.013 0.025
## 5 wt_kg     5888 -11   111     54      25  52.6 18.6   0.242 0.475

2 và

## # A tibble: 5 x 10
##   variable     n   min   max median   iqr  mean     sd    se    ci
##                 
## 1 age       5802   0    84     13      17  16.1 12.6   0.166 0.325
## 2 ct_blood  5888  16    26     22       2  21.2  1.69  0.022 0.043
## 3 ht_cm     5888   4   295    129      68 125.  49.5   0.645 1.26 
## 4 temp      5739  35.2  40.8   38.8     1  38.6  0.977 0.013 0.025
## 5 wt_kg     5888 -11   111     54      25  52.6 18.6   0.242 0.475

3 là một cách tiếp cận hữu ích để tính toán các tóm tắt thống kê, tổng hợp theo nhóm, hoặc chuyển bảng tới

## # A tibble: 5 x 10
##   variable     n   min   max median   iqr  mean     sd    se    ci
##                 
## 1 age       5802   0    84     13      17  16.1 12.6   0.166 0.325
## 2 ct_blood  5888  16    26     22       2  21.2  1.69  0.022 0.043
## 3 ht_cm     5888   4   295    129      68 125.  49.5   0.645 1.26 
## 4 temp      5739  35.2  40.8   38.8     1  38.6  0.977 0.013 0.025
## 5 wt_kg     5888 -11   111     54      25  52.6 18.6   0.242 0.475

4.

## # A tibble: 5 x 10
##   variable     n   min   max median   iqr  mean     sd    se    ci
##                 
## 1 age       5802   0    84     13      17  16.1 12.6   0.166 0.325
## 2 ct_blood  5888  16    26     22       2  21.2  1.69  0.022 0.043
## 3 ht_cm     5888   4   295    129      68 125.  49.5   0.645 1.26 
## 4 temp      5739  35.2  40.8   38.8     1  38.6  0.977 0.013 0.025
## 5 wt_kg     5888 -11   111     54      25  52.6 18.6   0.242 0.475

2 tạo một data frame tổng hợp mới. Nếu dữ liệu được tách nhóm, nó sẽ trả về data frame có một hàng với thống kê tóm tắt được chỉ định cho toàn bộ data frame. Nếu dữ liệu được nhóm lại, data frames sẽ có một hàng cho từng nhóm (xem chương ).

Bên trong dấu ngoặc đơn của hàm

## # A tibble: 5 x 10
##   variable     n   min   max median   iqr  mean     sd    se    ci
##                 
## 1 age       5802   0    84     13      17  16.1 12.6   0.166 0.325
## 2 ct_blood  5888  16    26     22       2  21.2  1.69  0.022 0.043
## 3 ht_cm     5888   4   295    129      68 125.  49.5   0.645 1.26 
## 4 temp      5739  35.2  40.8   38.8     1  38.6  0.977 0.013 0.025
## 5 wt_kg     5888 -11   111     54      25  52.6 18.6   0.242 0.475

2, bạn sẽ cung cấp tên của từng cột cần tổng hợp mới, theo sau là dấu bằng và một hàm thống kê để áp dụng.

MẸO: Hàm summarise hoạt động được với cả cách viết Anh-Anh và Anh-Mỹ (

## # A tibble: 5 x 10
##   variable     n   min   max median   iqr  mean     sd    se    ci
##                 
## 1 age       5802   0    84     13      17  16.1 12.6   0.166 0.325
## 2 ct_blood  5888  16    26     22       2  21.2  1.69  0.022 0.043
## 3 ht_cm     5888   4   295    129      68 125.  49.5   0.645 1.26 
## 4 temp      5739  35.2  40.8   38.8     1  38.6  0.977 0.013 0.025
## 5 wt_kg     5888 -11   111     54      25  52.6 18.6   0.242 0.475

2 và

# import the linelist linelist <- import("linelist_cleaned.rds")

66).

Lấy số lượng

Hàm đơn giản nhất để áp dụng cùng với hàm

## # A tibble: 5 x 10
##   variable     n   min   max median   iqr  mean     sd    se    ci
##                 
## 1 age       5802   0    84     13      17  16.1 12.6   0.166 0.325
## 2 ct_blood  5888  16    26     22       2  21.2  1.69  0.022 0.043
## 3 ht_cm     5888   4   295    129      68 125.  49.5   0.645 1.26 
## 4 temp      5739  35.2  40.8   38.8     1  38.6  0.977 0.013 0.025
## 5 wt_kg     5888 -11   111     54      25  52.6 18.6   0.242 0.475

2 là

# import the linelist linelist <- import("linelist_cleaned.rds")

68. Để trống dấu ngoặc đơn để đếm số hàng.

## get information about each variable in a dataset skim(linelist)

6

## get information about each variable in a dataset skim(linelist)

7

Điều này sẽ thú vị hơn nếu chúng ta đã nhóm dữ liệu trước đó.

## get information about each variable in a dataset skim(linelist)

8

## get information about each variable in a dataset skim(linelist)

9

Lệnh trên có thể được rút ngắn bằng cách sử dụng hàm

## # A tibble: 5 x 10
##   variable     n   min   max median   iqr  mean     sd    se    ci
##                 
## 1 age       5802   0    84     13      17  16.1 12.6   0.166 0.325
## 2 ct_blood  5888  16    26     22       2  21.2  1.69  0.022 0.043
## 3 ht_cm     5888   4   295    129      68 125.  49.5   0.645 1.26 
## 4 temp      5739  35.2  40.8   38.8     1  38.6  0.977 0.013 0.025
## 5 wt_kg     5888 -11   111     54      25  52.6 18.6   0.242 0.475

3 thay thế.

## # A tibble: 5 x 10
##   variable     n   min   max median   iqr  mean     sd    se    ci
##                 
## 1 age       5802   0    84     13      17  16.1 12.6   0.166 0.325
## 2 ct_blood  5888  16    26     22       2  21.2  1.69  0.022 0.043
## 3 ht_cm     5888   4   295    129      68 125.  49.5   0.645 1.26 
## 4 temp      5739  35.2  40.8   38.8     1  38.6  0.977 0.013 0.025
## 5 wt_kg     5888 -11   111     54      25  52.6 18.6   0.242 0.475

3 làm những việc sau:

  1. Nhóm dữ liệu theo các cột được cung cấp cho nó
  2. Tổng hợp chúng với

    import the linelist

    linelist <- import("linelist_cleaned.rds")

    68 (tạo cột

    import the linelist

    linelist <- import("linelist_cleaned.rds")
    72)
  3. Tách nhóm dữ liệu

## get information about each column in a dataset summary(linelist)

0

## get information about each column in a dataset summary(linelist)

1

Bạn có thể thay đổi tên của cột đếm từ mặc định là

# import the linelist linelist <- import("linelist_cleaned.rds")

72 thành một cái gì đó cụ thể chẳng hạn như

# import the linelist linelist <- import("linelist_cleaned.rds")

27.

Tạo bảng đếm cho hai hoặc nhiều cột sẽ vẫn trả về địng dạng “dọc”, với số lượng ở cột

# import the linelist linelist <- import("linelist_cleaned.rds")

72. Xem chương [Pivoting dữ liệu] để hiểu thêm về định dạng dữ liệu “dọc” và “ngang”.

## get information about each column in a dataset summary(linelist)

2

## get information about each column in a dataset summary(linelist)

3

Hiện tất cả các cấp độ

Nếu bạn tạo bảng cho một cột có kiểu dữ liệu là factor, bạn có thể chắc chắng rằng tất cả các cấp độ được trình bày (không chỉ các cấp có giá trị trong dữ liệu) bằng cách thêm

# import the linelist linelist <- import("linelist_cleaned.rds")

76 vào lệnh

## # A tibble: 5 x 10
##   variable     n   min   max median   iqr  mean     sd    se    ci
##                 
## 1 age       5802   0    84     13      17  16.1 12.6   0.166 0.325
## 2 ct_blood  5888  16    26     22       2  21.2  1.69  0.022 0.043
## 3 ht_cm     5888   4   295    129      68 125.  49.5   0.645 1.26 
## 4 temp      5739  35.2  40.8   38.8     1  38.6  0.977 0.013 0.025
## 5 wt_kg     5888 -11   111     54      25  52.6 18.6   0.242 0.475

2 hoặc

## # A tibble: 5 x 10
##   variable     n   min   max median   iqr  mean     sd    se    ci
##                 
## 1 age       5802   0    84     13      17  16.1 12.6   0.166 0.325
## 2 ct_blood  5888  16    26     22       2  21.2  1.69  0.022 0.043
## 3 ht_cm     5888   4   295    129      68 125.  49.5   0.645 1.26 
## 4 temp      5739  35.2  40.8   38.8     1  38.6  0.977 0.013 0.025
## 5 wt_kg     5888 -11   111     54      25  52.6 18.6   0.242 0.475

3.

Kỹ thuật này rất hữu ích để chuẩn hóa các bảng/biểu đồ của bạn. Ví dụ: nếu bạn đang tạo số liệu cho nhiều nhóm con, hoặc liên tục tạo số liệu cho các báo cáo thường quy. Trong các trường hợp này, sự hiện diện của các giá trị trong dữ liệu có thể dao động, nhưng bạn có thể xác định các mức không đổi.

Xem chương để có nhiều thông tin hơn.

Tỷ lệ

Tỷ lệ có thể được thêm vào bằng cách piping bảng tới hàm

# import the linelist linelist <- import("linelist_cleaned.rds")

79 để tạo một cột mới. Định nghĩa cột mới là thương của số quan sát của từng yếu tố (mặc định là

# import the linelist linelist <- import("linelist_cleaned.rds")

  1. và tổng số quan sát

# import the linelist linelist <- import("linelist_cleaned.rds")

81 của cột (sẽ trả về giá trị là một tỷ lệ).

Lưu ý trong trường hợp này,

# import the linelist linelist <- import("linelist_cleaned.rds")

81 trong lệnh

# import the linelist linelist <- import("linelist_cleaned.rds")

79 sẽ trả về giá trị của toàn bộ cột

# import the linelist linelist <- import("linelist_cleaned.rds")

72 để dùng làm mẫu số của tỷ lệ. Như đã được giải thích , nếu

# import the linelist linelist <- import("linelist_cleaned.rds")

81 được sử dụng với dữ liệu đã được nhóm (vd: nếu hàm

# import the linelist linelist <- import("linelist_cleaned.rds")

79 được theo ngay phía sai hàm

# import the linelist linelist <- import("linelist_cleaned.rds")

87), nó sẽ trả về kết quả tổng hợp theo nhóm. Như đã nếu ở trên,

## # A tibble: 5 x 10
##   variable     n   min   max median   iqr  mean     sd    se    ci
##                 
## 1 age       5802   0    84     13      17  16.1 12.6   0.166 0.325
## 2 ct_blood  5888  16    26     22       2  21.2  1.69  0.022 0.043
## 3 ht_cm     5888   4   295    129      68 125.  49.5   0.645 1.26 
## 4 temp      5739  35.2  40.8   38.8     1  38.6  0.977 0.013 0.025
## 5 wt_kg     5888 -11   111     54      25  52.6 18.6   0.242 0.475

3 hoàn thành nhiệm vụ của mình bằng cách tách nhóm. Vì vậy, trong trường hợp này chúng ta sẽ lấy toàn bộ tỷ lệ của cột.

Để dễ dàng hiển thị phần trăm, bạn có thể đưa tỷ lệ vào trong hàm

# import the linelist linelist <- import("linelist_cleaned.rds")

89 từ package scales (lưu ý là điều nãy sẽ chuyển kết quả thành dạng ký tự (character)).

## get information about each column in a dataset summary(linelist)

4

## get information about each column in a dataset summary(linelist)

5

Dưới đây là phương pháp tính tỷ lệ trong nhóm. Nó dựa trên các cấp độ nhóm dữ liệu khác nhau được áp dụng và loại bỏ một cách có chọn lọc. Đầu tiên, dữ liệu được nhóm theo

# import the linelist linelist <- import("linelist_cleaned.rds")

90 thông qua hàm

# import the linelist linelist <- import("linelist_cleaned.rds")

87. Sau đó, hàm

## # A tibble: 5 x 10
##   variable     n   min   max median   iqr  mean     sd    se    ci
##                 
## 1 age       5802   0    84     13      17  16.1 12.6   0.166 0.325
## 2 ct_blood  5888  16    26     22       2  21.2  1.69  0.022 0.043
## 3 ht_cm     5888   4   295    129      68 125.  49.5   0.645 1.26 
## 4 temp      5739  35.2  40.8   38.8     1  38.6  0.977 0.013 0.025
## 5 wt_kg     5888 -11   111     54      25  52.6 18.6   0.242 0.475

3 được áp dụng. Hàm này sẽ tiếp tục nhóm dữ liệu phân theo

# import the linelist linelist <- import("linelist_cleaned.rds")

93 và trả vế số lượng theo từng tổ hợp

# import the linelist linelist <- import("linelist_cleaned.rds")

90-

# import the linelist linelist <- import("linelist_cleaned.rds")

95. Quan trọng là - khi nó kết thúc quy trình của mình, hàm

## # A tibble: 5 x 10
##   variable     n   min   max median   iqr  mean     sd    se    ci
##                 
## 1 age       5802   0    84     13      17  16.1 12.6   0.166 0.325
## 2 ct_blood  5888  16    26     22       2  21.2  1.69  0.022 0.043
## 3 ht_cm     5888   4   295    129      68 125.  49.5   0.645 1.26 
## 4 temp      5739  35.2  40.8   38.8     1  38.6  0.977 0.013 0.025
## 5 wt_kg     5888 -11   111     54      25  52.6 18.6   0.242 0.475

3 sẽ tách nhóm theo

# import the linelist linelist <- import("linelist_cleaned.rds")

93, nên nhóm dữ liệu duy nhất còn lại là nhóm ban đầu theo

# import the linelist linelist <- import("linelist_cleaned.rds")

90. Do đó, bước cuối cùng để tính toán tỷ lệ (mẫu số là

# import the linelist linelist <- import("linelist_cleaned.rds")

  1. vẫn được nhóm theo

# import the linelist linelist <- import("linelist_cleaned.rds")

90.

## get information about each column in a dataset summary(linelist)

6

Vẽ biểu đồ

Để hiển thị kết quả từ một bảng “dài” như trên thì vẽ biểu đồ bằng hàm

## # A tibble: 5 x 10
##   variable     n   min   max median   iqr  mean     sd    se    ci
##                 
## 1 age       5802   0    84     13      17  16.1 12.6   0.166 0.325
## 2 ct_blood  5888  16    26     22       2  21.2  1.69  0.022 0.043
## 3 ht_cm     5888   4   295    129      68 125.  49.5   0.645 1.26 
## 4 temp      5739  35.2  40.8   38.8     1  38.6  0.977 0.013 0.025
## 5 wt_kg     5888 -11   111     54      25  52.6 18.6   0.242 0.475

4 tương đối trực quan. Dữ liệu một cách tự nhiên có định dạng “dọc”, nên tương thích với

## # A tibble: 5 x 10
##   variable     n   min   max median   iqr  mean     sd    se    ci
##                 
## 1 age       5802   0    84     13      17  16.1 12.6   0.166 0.325
## 2 ct_blood  5888  16    26     22       2  21.2  1.69  0.022 0.043
## 3 ht_cm     5888   4   295    129      68 125.  49.5   0.645 1.26 
## 4 temp      5739  35.2  40.8   38.8     1  38.6  0.977 0.013 0.025
## 5 wt_kg     5888 -11   111     54      25  52.6 18.6   0.242 0.475

4 một cách tự nhiên. Xem thêm các ví dụ ở chương và .

## get information about each column in a dataset summary(linelist)

7

Hàm r norm trong r có nghĩa là gì

Tổng hợp thống kê

Một điểm mạnh của dplyr và

## # A tibble: 5 x 10
##   variable     n   min   max median   iqr  mean     sd    se    ci
##                 
## 1 age       5802   0    84     13      17  16.1 12.6   0.166 0.325
## 2 ct_blood  5888  16    26     22       2  21.2  1.69  0.022 0.043
## 3 ht_cm     5888   4   295    129      68 125.  49.5   0.645 1.26 
## 4 temp      5739  35.2  40.8   38.8     1  38.6  0.977 0.013 0.025
## 5 wt_kg     5888 -11   111     54      25  52.6 18.6   0.242 0.475

2 là khả năng trả về các bảng tổng hợp thống kê nâng cao hơn như

# import the linelist linelist <- import("linelist_cleaned.rds")

06,

# import the linelist linelist <- import("linelist_cleaned.rds")

07,

# import the linelist linelist <- import("linelist_cleaned.rds")

04,

# import the linelist linelist <- import("linelist_cleaned.rds")

05,

# import the linelist linelist <- import("linelist_cleaned.rds")

09 (độ lệch chuẩn), và phân vị. Bạn cũng có thể sử dụng

# import the linelist linelist <- import("linelist_cleaned.rds")

81 để trả vể số lượng dòng thỏa mãn một điều kiện logic nào đó. Như trên, các kết quả đầu ra này có thể được tạo cho toàn bộ data frame hoặc theo nhóm.

Cú pháp là tương tự- bên trong dấu ngoặc hàm

## # A tibble: 5 x 10
##   variable     n   min   max median   iqr  mean     sd    se    ci
##                 
## 1 age       5802   0    84     13      17  16.1 12.6   0.166 0.325
## 2 ct_blood  5888  16    26     22       2  21.2  1.69  0.022 0.043
## 3 ht_cm     5888   4   295    129      68 125.  49.5   0.645 1.26 
## 4 temp      5739  35.2  40.8   38.8     1  38.6  0.977 0.013 0.025
## 5 wt_kg     5888 -11   111     54      25  52.6 18.6   0.242 0.475

2 bạn cung cấp tên của từng cột tổng hợp được theo sau bởi dâu bằng và hàm thống kê được áp dụng. Trong hàm thống kê, cung cấp (các) cột sẽ được tính toán và bất kỳ các đối số có liên quan (vd:

# import the linelist linelist <- import("linelist_cleaned.rds")

12 cho tất cả các hàm toán học).

Bạn cũng có thể sử dụng hàm

# import the linelist linelist <- import("linelist_cleaned.rds")

81 để trả vể số lượng dòng thỏa mãn một điều kiện logic cụ thể. Biểu thức điều kiện sẽ được đếm nếu nó được đánh giá là

## get information about each variable in a dataset skim(linelist)

13. Ví dụ:

  • get information about each variable in a dataset

    skim(linelist)
    14
  • get information about each variable in a dataset

    skim(linelist)
    15
  • get information about each variable in a dataset

    skim(linelist)
    16

Dưới đây, bộ dữ liệu

# import the linelist linelist <- import("linelist_cleaned.rds")

01 được tổng hợp để mô tả những ngày trì hoãn từ khi bắt đầu có triệu chứng đến khi nhập viện (cột

## get information about each variable in a dataset skim(linelist)

18), phân theo bệnh viện.

## get information about each column in a dataset summary(linelist)

8

## get information about each column in a dataset summary(linelist)

9

Một vài mẹp:

  • Sử dụng

    import the linelist

    linelist <- import("linelist_cleaned.rds")

    81 với một biểu thức logic để “đếm” các dòng đáp ứng các tiêu chí nhất định (

    get information about each variable in a dataset

    skim(linelist)
    20)
  • Lưu ý cách sử dụng của

    import the linelist

    linelist <- import("linelist_cleaned.rds")

    12 bên trong biểu thức toán học như là

    import the linelist

    linelist <- import("linelist_cleaned.rds")

    81, nếu không

    import the linelist

    linelist <- import("linelist_cleaned.rds")
    11 sẽ được trả lại nếu dữ liệu có giá trị missing
  • Sử dụng hàm

    import the linelist

    linelist <- import("linelist_cleaned.rds")

    89 từ package scales để dễ dàng chuyển đổi tỷ lệ phần trăm

    • Thiết lập

      get information about each variable in a dataset

      skim(linelist)
      25 bằng 0.1 hoặc 0.01 để đảm bảo kết quả hiển thị 1 hoặc 2 chữ số thập phân sau dấ phẩy
  • Sử dụng hàm

    get information about each variable in a dataset

    skim(linelist)
    26 từ base R để chỉ định số thập phân
  • Để tính toán các thống kê này trên toàn bộ tập dữ liệu, sử dụng

    # A tibble: 5 x 10

    variable n min max median iqr mean sd se ci

    1 age 5802 0 84 13 17 16.1 12.6 0.166 0.325

    2 ct_blood 5888 16 26 22 2 21.2 1.69 0.022 0.043

    3 ht_cm 5888 4 295 129 68 125. 49.5 0.645 1.26

    4 temp 5739 35.2 40.8 38.8 1 38.6 0.977 0.013 0.025

    5 wt_kg 5888 -11 111 54 25 52.6 18.6 0.242 0.475

    2 và không có

    import the linelist

    linelist <- import("linelist_cleaned.rds")
    87
  • Bạn có thể tạo các cột cho các mục đích tính toán sau này (ví dụ: mẫu số) mà thậm chí bạn bỏ ra khỏi data frame của mình với hàm

    get information about each variable in a dataset

    skim(linelist)
    29.

Thống kê có điều kiện

Bạn có thể sẽ muốn trả về các thống kê có điều kiện - vd: số hàng tối đa đáp ứng các tiêu chí nhất định. Điều này có thể thực hiện được bằng cáhc subsetting cột bằng dấu ngoặc vuông

## get information about each variable in a dataset skim(linelist)

30. Ví dụ dưới đây trả về nhiệt độ tối đa cho những bệnh nhân được phân loại là có hoặc không bị sốt. Tuy nhiên hãy lưu ý - có thể thích hợp hơn nếu thêm một cột khác vào hàm

# import the linelist linelist <- import("linelist_cleaned.rds")

87 và

## get information about each variable in a dataset skim(linelist)

32 (như được minh họa ).

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

0

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

1

Gắn với nhau

Hàm

## get information about each variable in a dataset skim(linelist)

33 từ package stringr rất hữu ích để kết hợp các giá trị từ một số cột thành một cột mới. Trong trường hợp này nó được sử dụng sau hàm

## # A tibble: 5 x 10
##   variable     n   min   max median   iqr  mean     sd    se    ci
##                 
## 1 age       5802   0    84     13      17  16.1 12.6   0.166 0.325
## 2 ct_blood  5888  16    26     22       2  21.2  1.69  0.022 0.043
## 3 ht_cm     5888   4   295    129      68 125.  49.5   0.645 1.26 
## 4 temp      5739  35.2  40.8   38.8     1  38.6  0.977 0.013 0.025
## 5 wt_kg     5888 -11   111     54      25  52.6 18.6   0.242 0.475

2.

Trong chương , có nhiều lựa chọn khác nhau để kết hợp các cột được thảo luận, bao gồm cả

## get information about each variable in a dataset skim(linelist)

35, và

## get information about each variable in a dataset skim(linelist)

36. Trong trường hợp sử dụng này, chúng tôi ủng hộ

## get information about each variable in a dataset skim(linelist)

33 bởi vì nó linh hoạt hơn

## get information about each variable in a dataset skim(linelist)

35 và có cú pháp đơn giẩn hơn

## get information about each variable in a dataset skim(linelist)

36.

Dưới đây, data frame

## get information about each variable in a dataset skim(linelist)

40 (được tạo bên trên) được biến đổi để kết hợp cột

## get information about each variable in a dataset skim(linelist)

41 và

## get information about each variable in a dataset skim(linelist)

42, định dạng dấu ngoặc đơn được thêm vào cột mới, và các cột cũ tương ứng của chúng bị xóa.

Sau đó, để làm cho bảng dễ nhìn hơn, tổng hàng được thêm vào bằng hàm

# import the linelist linelist <- import("linelist_cleaned.rds")

25 từ janitor (bỏ qua các cột không phải số). Cuối cùng, chúng tôi sử dụng hàm

## get information about each variable in a dataset skim(linelist)

29 từ dplyr để sắp xếp và đặt tên lại cho các cột.

Bây giờ bạn có thể chuyển kết quả tới flextable và in chúng thành bảng trong Word, .png, .jpeg, .html, Powerpoint, RMarkdown, v.v.! (xem chương ).

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

2

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

3

Bách phân vị

Bách phân vị và tứ phân vị trong dplyr xứng đáng được đề cập tới. Để trả về tứ phân vị, sử dụng

# import the linelist linelist <- import("linelist_cleaned.rds")

08 với các giá trị mặc định hoặc chỉ rõ giá trị bạn muốn bằng đối số

## get information about each variable in a dataset skim(linelist)

46.

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

4

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

5

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

6

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

7

Nếu bạn muốn trả về phân vị theo nhóm, bạn có thể gặp phải các kết quả đầu ra dài và ít hữu ích hơn nếu bạn chỉ cần thêm cột vào

# import the linelist linelist <- import("linelist_cleaned.rds")

87. Thay vào đó, hãy thử cách tiếp cận này - tạo một cột cho mỗi mức phân vị mong muốn.

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

8

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

9

Mặc dù dplyr

## # A tibble: 5 x 10
##   variable     n   min   max median   iqr  mean     sd    se    ci
##                 
## 1 age       5802   0    84     13      17  16.1 12.6   0.166 0.325
## 2 ct_blood  5888  16    26     22       2  21.2  1.69  0.022 0.043
## 3 ht_cm     5888   4   295    129      68 125.  49.5   0.645 1.26 
## 4 temp      5739  35.2  40.8   38.8     1  38.6  0.977 0.013 0.025
## 5 wt_kg     5888 -11   111     54      25  52.6 18.6   0.242 0.475

2 chắc chắn cung cấp khả năng kiểm soát tốt hơn, bạn có thể thấy rằng tất cả các thống kê tổng hợp mà bạn cần có thể được tạo ra với hàm

## get information about each variable in a dataset skim(linelist)

49 từ package rstatix. Nếu thực hiện trên dữ liệu đã được nhóm, nó sẽ trả về các phân vị 0%, 25%, 50%, 75%, và 100%. If applied to ungrouped data, you can specify the percentiles with

## get information about each variable in a dataset skim(linelist)

50.

summary(linelist$age_years)[[2]] # return only the 2nd element

0

summary(linelist$age_years)[[2]] # return only the 2nd element

1

summary(linelist$age_years)[[2]] # return only the 2nd element

2

summary(linelist$age_years)[[2]] # return only the 2nd element

3

summary(linelist$age_years)[[2]] # return only the 2nd element

4

Tóm tắt dữ liệu tổng hợp

Nếu bạn bắt đầu với dữ liệu tổng hợp (aggregated data), sử dụng

# import the linelist linelist <- import("linelist_cleaned.rds")

68 để trả về số lượng các dòng, không phải là tổng của các số lượng được đếm. Để lấy tổng, sử dụng

# import the linelist linelist <- import("linelist_cleaned.rds")

81 trên cột của dữ liệu đếm.

Ví dụ, giả sử bạn đang bắt đầu với data frame đếm số lượng như bên dưới, gọi là

## get information about each variable in a dataset skim(linelist)

53 - nó hiển thị ở định dạng “dọc”, các trường hợp được tính theo outcome và giới tính.

Sau đây chúng ta sẽ tạo data frame minh hoạt số trường hợp của

# import the linelist linelist <- import("linelist_cleaned.rds")

01 được đếm theo outcome và gender (các giá trị missing được loại bỏ để rõ ràng).

summary(linelist$age_years)[[2]] # return only the 2nd element

5

summary(linelist$age_years)[[2]] # return only the 2nd element

6

Để tính tổng số lượng (trong cột

# import the linelist linelist <- import("linelist_cleaned.rds")

  1. theo nhóm bạn có thể sử dụng hàm

## # A tibble: 5 x 10
##   variable     n   min   max median   iqr  mean     sd    se    ci
##                 
## 1 age       5802   0    84     13      17  16.1 12.6   0.166 0.325
## 2 ct_blood  5888  16    26     22       2  21.2  1.69  0.022 0.043
## 3 ht_cm     5888   4   295    129      68 125.  49.5   0.645 1.26 
## 4 temp      5739  35.2  40.8   38.8     1  38.6  0.977 0.013 0.025
## 5 wt_kg     5888 -11   111     54      25  52.6 18.6   0.242 0.475

2 nhưng đặt cột mới bằng

## get information about each variable in a dataset skim(linelist)

57. Để thêm phần tử điều kiện vào phép toán tổng, bạn có thể sử dụng cú pháp dấu ngoặc vuông tập hợp con [ ] trên cột đếm.

summary(linelist$age_years)[[2]] # return only the 2nd element

7

summary(linelist$age_years)[[2]] # return only the 2nd element

8

## get information about each variable in a dataset skim(linelist)

58 trên nhiều cột

Bạn có thể sử dụng

## # A tibble: 5 x 10
##   variable     n   min   max median   iqr  mean     sd    se    ci
##                 
## 1 age       5802   0    84     13      17  16.1 12.6   0.166 0.325
## 2 ct_blood  5888  16    26     22       2  21.2  1.69  0.022 0.043
## 3 ht_cm     5888   4   295    129      68 125.  49.5   0.645 1.26 
## 4 temp      5739  35.2  40.8   38.8     1  38.6  0.977 0.013 0.025
## 5 wt_kg     5888 -11   111     54      25  52.6 18.6   0.242 0.475

2 trên nhiều cột bằng hàm

## get information about each variable in a dataset skim(linelist)

58. Điều này làm cho mọi thứ dễ dàng hơn khi bạn muốn tính toán các thống kê giống nhau cho nhiều cột. Đặt

## get information about each variable in a dataset skim(linelist)

58 bên trong

## # A tibble: 5 x 10
##   variable     n   min   max median   iqr  mean     sd    se    ci
##                 
## 1 age       5802   0    84     13      17  16.1 12.6   0.166 0.325
## 2 ct_blood  5888  16    26     22       2  21.2  1.69  0.022 0.043
## 3 ht_cm     5888   4   295    129      68 125.  49.5   0.645 1.26 
## 4 temp      5739  35.2  40.8   38.8     1  38.6  0.977 0.013 0.025
## 5 wt_kg     5888 -11   111     54      25  52.6 18.6   0.242 0.475

2 và chỉ rõ những điều sau:

  • get information about each variable in a dataset

    skim(linelist)

    63 tên cột viết dưới dạng vector

    get information about each variable in a dataset

    skim(linelist)
    64 hoặc sử dụng các hàm trợ giúp chọn cột “tidyselect” (được giải thích bên dưới)
  • get information about each variable in a dataset

    skim(linelist)

    65 hàm thực hiện (không có dấu ngoặc) - bạn có thể đưa nhiều hàm vào thông qua

    get information about each variable in a dataset

    skim(linelist)
    66

Ví dụ dưới đây,

# import the linelist linelist <- import("linelist_cleaned.rds")

07 được áp dụng cho các cột dữ liệu dạng số. Một vectơ tên của các cột được gán cho

## get information about each variable in a dataset skim(linelist)

63 và hàm duy nhất

## get information about each variable in a dataset skim(linelist)

69 được xác định (không có dấu ngoặc) cho

## get information about each variable in a dataset skim(linelist)

65. Bất kỳ đối số bổ sung nào cho hàm (vd:

## get information about each variable in a dataset skim(linelist)

  1. được cung cấp phía sau

## get information about each variable in a dataset skim(linelist)

65, ngăn cách bởi dấu phẩy.

Có thể khó để hiểu được thứ tự của dấu ngoặc đơn và dấu phẩy chính xác khi sử dụng

## get information about each variable in a dataset skim(linelist)

58. Hãy nhớ là bên trong hàm

## get information about each variable in a dataset skim(linelist)

58 bạn phải bao gồm các cột, các hàm, và tất cả những đối số cần thiết cho các hàm.

summary(linelist$age_years)[[2]] # return only the 2nd element

9

## [1] 6

0

Nhiều hàm có thể được chạy cùng một lúc. Dưới đây hàm

## get information about each variable in a dataset skim(linelist)

69 và

## get information about each variable in a dataset skim(linelist)

76 được cung cấp cho

## get information about each variable in a dataset skim(linelist)

65 bên trong một

## get information about each variable in a dataset skim(linelist)

66. Bạn có cơ hội cung cấp tên ký tự (vd: “mean” và “sd”) để thêm vào tên các cột mới.

## [1] 6

1

## [1] 6

2

Dưới đây là danh sách các hàm trợ giúp “tidyselect” bạn có thể cung cấp cho

## get information about each variable in a dataset skim(linelist)

63 để lựa chọn cột:

  • get information about each variable in a dataset

    skim(linelist)
    80 - tất cả các cột khác không được đề cập
  • get information about each variable in a dataset

    skim(linelist)
    81 - cột cuối cùng
  • get information about each variable in a dataset

    skim(linelist)
    82 - áp dụng một hàm cho tất cả các cột và chọn những cột trả về giá trị TRUE
  • get information about each variable in a dataset

    skim(linelist)

    83 - khớp với một tiền tố được chỉ định. Ví dụ:

    get information about each variable in a dataset

    skim(linelist)
    84
  • get information about each variable in a dataset

    skim(linelist)

    85 - khớp với một hậu tố được chỉ định. Ví dụ:

    get information about each variable in a dataset

    skim(linelist)
    86
  • get information about each variable in a dataset

    skim(linelist)

    87 - cột chứa một chuỗi ký tự. Ví dụ:

    get information about each variable in a dataset

    skim(linelist)
    88
  • get information about each variable in a dataset

    skim(linelist)

    89 - áp dụng một biểu thức chính quy (regex). Ví dụ:

    get information about each variable in a dataset

    skim(linelist)
    90
  • get information about each variable in a dataset

    skim(linelist)
    91 - khoảng giá trị số
  • get information about each variable in a dataset

    skim(linelist)

    92 - khớp nếu cột được đặt tên. Hữu ích nếu tên có thể không tồn tại. Ví dụ:

    get information about each variable in a dataset

    skim(linelist)
    93

Ví dụ, để trả về giá trị trung bình của tất cả các cột dạng số, sử dụng

## get information about each variable in a dataset skim(linelist)

82 và thêm vào hàm

## get information about each variable in a dataset skim(linelist)

95 (không có dấu ngoặc). Tất cả những thứ này vẫn được đặt trong hàm

## get information about each variable in a dataset skim(linelist)

58.

## [1] 6

3

## [1] 6

4

Xoay trục ngang (Pivot wider)

Nếu bạn thích bảng của mình ở định dạng “rộng”, bạn có thể biến đổi nó sử dụng hàm tidyr

## get information about each variable in a dataset skim(linelist)

32. Bạn có thể sẽ cần đặt lại tên cho các cột bằng

## get information about each variable in a dataset skim(linelist)

98. Để tìm hiểu thêm, vui lòng xem chương [Pivoting dữ liệu].

Ví dụ sau đây bắt đầu bằng một bảng “dài”

## get information about each variable in a dataset skim(linelist)

99 từ mục . Để dễ hình dung, chúng ta tạo lại bảng và in ra:

## get information about each column in a dataset summary(linelist)

6

Để xoay trục ngang, chúng ta tạo các cột mới từ các giá trị trong cột hiện có

# import the linelist linelist <- import("linelist_cleaned.rds")

93 (bằng cách đặt

## get information about each column in a dataset summary(linelist)

01). Chúng ta cũng chỉ định rằng các giá trị bảng mới sẽ đến từ cột hiện có

# import the linelist linelist <- import("linelist_cleaned.rds")

72, với

## get information about each column in a dataset summary(linelist)

03. Các cột không được đề cập trong lệnh pivoting (

# import the linelist linelist <- import("linelist_cleaned.rds")

  1. sẽ không thay đổi ở phía ngoài cùng bên trái.

## [1] 6

6

## [1] 6

7

Tổng các hàng

Khi hàm

## # A tibble: 5 x 10
##   variable     n   min   max median   iqr  mean     sd    se    ci
##                 
## 1 age       5802   0    84     13      17  16.1 12.6   0.166 0.325
## 2 ct_blood  5888  16    26     22       2  21.2  1.69  0.022 0.043
## 3 ht_cm     5888   4   295    129      68 125.  49.5   0.645 1.26 
## 4 temp      5739  35.2  40.8   38.8     1  38.6  0.977 0.013 0.025
## 5 wt_kg     5888 -11   111     54      25  52.6 18.6   0.242 0.475

2 vận hành trên dữ liệu đã được nhóm, nó không tính “tổng” một cách tự động. Sau đây là hai cách tiếp cận giúp bạn thêm tổng hàng:

janitor’s

# import the linelist linelist <- import("linelist_cleaned.rds")

25

Nếu bảng của bạn chỉ chứa duy nhất số lượng hoặc tỷ lệ/tỷ lệ phần trăm có thể được tổng hợp thành một tổng, thì bạn có thể tính tổng sử dụng hàm

# import the linelist linelist <- import("linelist_cleaned.rds")

25 của package janitor như đã được mô tả bên trên. Lưu ý là hàm này chỉ có thể tính tổng của các cột định dạng là số - nếu bạn muốn tính các loại tổng khác, vui lòng xem cách tiếp cận tiếp theo bằng dplyr.

Dưới đây, bộ dữ liệu

# import the linelist linelist <- import("linelist_cleaned.rds")

01 được nhóm theo giới và tóm tắt thành một bảng mô tả số trường hợp có outcome đã biết, tử vong và phục hồi. Piping bảng tới hàm

# import the linelist linelist <- import("linelist_cleaned.rds")

25 để thêm tổng các hàng ở hàng dưới cùng thể hiện giá trị tổng của từng cột. Các hàm

# import the linelist linelist <- import("linelist_cleaned.rds")

44 khác điều chỉnh cách kết quả được hiển thị như được comment trong phần code.

## [1] 6

8

## [1] 6

9

## # A tibble: 5 x 10
##   variable     n   min   max median   iqr  mean     sd    se    ci
##                 
## 1 age       5802   0    84     13      17  16.1 12.6   0.166 0.325
## 2 ct_blood  5888  16    26     22       2  21.2  1.69  0.022 0.043
## 3 ht_cm     5888   4   295    129      68 125.  49.5   0.645 1.26 
## 4 temp      5739  35.2  40.8   38.8     1  38.6  0.977 0.013 0.025
## 5 wt_kg     5888 -11   111     54      25  52.6 18.6   0.242 0.475

2 trên dữ liệu “tổng” rồi sau đó

## get information about each column in a dataset summary(linelist)

12

Nếu bảng của bạn chứa các phép tính thống kế chẳng hạn như

# import the linelist linelist <- import("linelist_cleaned.rds")

06,

# import the linelist linelist <- import("linelist_cleaned.rds")

07, v.v, thì cách tiếp cận dùng hàm

# import the linelist linelist <- import("linelist_cleaned.rds")

25 bên trên sẽ không đủ. Thay vào đó, để có được thống kê tóm tắt cho toàn bộ tập dữ liệu, bạn phải tính toán chúng bằng lệnh

## # A tibble: 5 x 10
##   variable     n   min   max median   iqr  mean     sd    se    ci
##                 
## 1 age       5802   0    84     13      17  16.1 12.6   0.166 0.325
## 2 ct_blood  5888  16    26     22       2  21.2  1.69  0.022 0.043
## 3 ht_cm     5888   4   295    129      68 125.  49.5   0.645 1.26 
## 4 temp      5739  35.2  40.8   38.8     1  38.6  0.977 0.013 0.025
## 5 wt_kg     5888 -11   111     54      25  52.6 18.6   0.242 0.475

2 một cách độc lập sau đó gắn các kết quả này với bảng tổng hợp theo nhóm ban đầu. Để làm điều này, bạn có thể sử dụng hàm

## get information about each column in a dataset summary(linelist)

12 từ dplyr như được mô tả trong chương . Dưới đây là một ví dụ:

Bạn có thể tạo bảng tổng hợp của outcome theo bệnh viện với

# import the linelist linelist <- import("linelist_cleaned.rds")

87 và

## # A tibble: 5 x 10
##   variable     n   min   max median   iqr  mean     sd    se    ci
##                 
## 1 age       5802   0    84     13      17  16.1 12.6   0.166 0.325
## 2 ct_blood  5888  16    26     22       2  21.2  1.69  0.022 0.043
## 3 ht_cm     5888   4   295    129      68 125.  49.5   0.645 1.26 
## 4 temp      5739  35.2  40.8   38.8     1  38.6  0.977 0.013 0.025
## 5 wt_kg     5888 -11   111     54      25  52.6 18.6   0.242 0.475

2 như sau:

`# equivalent, alternative to above by element name

summary(linelist$age_years)[["1st Qu."]] `

0

`# equivalent, alternative to above by element name

summary(linelist$age_years)[["1st Qu."]] `

1

Để tính tổng, vẫn sử dụng hàm

## # A tibble: 5 x 10
##   variable     n   min   max median   iqr  mean     sd    se    ci
##                 
## 1 age       5802   0    84     13      17  16.1 12.6   0.166 0.325
## 2 ct_blood  5888  16    26     22       2  21.2  1.69  0.022 0.043
## 3 ht_cm     5888   4   295    129      68 125.  49.5   0.645 1.26 
## 4 temp      5739  35.2  40.8   38.8     1  38.6  0.977 0.013 0.025
## 5 wt_kg     5888 -11   111     54      25  52.6 18.6   0.242 0.475

2 nhưng chỉ nhóm dữ liệu theo outcome (không theo bệnh viện), như dưới đây:

`# equivalent, alternative to above by element name

summary(linelist$age_years)[["1st Qu."]] `

2

`# equivalent, alternative to above by element name

summary(linelist$age_years)[["1st Qu."]] `

3

Bây giờ chúng ta có thể nối hai data frames này lại với nhau. Lưu ý là bảng

## get information about each column in a dataset summary(linelist)

21 có 4 cột trong khi đó bảng kết quả

## get information about each column in a dataset summary(linelist)

22 có 3 cột. Bằng việc sử dụng

## get information about each column in a dataset summary(linelist)

12, các cột được kết hợp theo tên, và bất kỳ khoảng trống nào sẽ được điền vào bằng giá trị

# import the linelist linelist <- import("linelist_cleaned.rds")

11 (ví dụ ở cột

## get information about each column in a dataset summary(linelist)

25 là các giá trị cho hai hàng

## get information about each column in a dataset summary(linelist)

22 mới). Sau khi gắn các hàng, chúng ta chuyển các khoảng trống đó thành “Tổng” bằng cách sử dụng

## get information about each column in a dataset summary(linelist)

27 (xem chương ).

`# equivalent, alternative to above by element name

summary(linelist$age_years)[["1st Qu."]] `

4

Đây là bảng mới với các hàng “Tổng” ở các hàng dưới cùng của bảng.

Bảng này đang có định dạng “dài”, có thể là những gì bạn muốn. Tuy nhiên, bạn có thể xoay bảng này rộng hơn theo chiều ngang để dễ đọc. Xem thêm ở phần Xoay trục ngang (Pivot wider) bên trên, và chương . Bạn cũng có thêm nhiều cột nữa, và sắp xếp chúng một cách đẹp mắt. Phần code được trình bày bên dưới.

`# equivalent, alternative to above by element name

summary(linelist$age_years)[["1st Qu."]] `

5

`# equivalent, alternative to above by element name

summary(linelist$age_years)[["1st Qu."]] `

6

Tiếp đó bạn có thể in bảng kết quả dưới dạng một bức ảnh đẹp - sau đây là output được in bằng flextable. Bạn có thể đọc chuyên sâu hơn về ví dụ này và cách tạo được bảng “đẹp” tương tự thế này trong chương .

Hospital

Total cases with known outcome

Recovered

Died

Total

% of cases

Median CT values

Total

% of cases

Median CT values

St. Mark's Maternity Hospital (SMMH)

325

126

38.8%

22

199

61.2%

22

Central Hospital

358

165

46.1%

22

193

53.9%

22

Other

685

290

42.3%

21

395

57.7%

22

Military Hospital

708

309

43.6%

22

399

56.4%

21

Missing

1,125

514

45.7%

21

611

54.3%

21

Port Hospital

1,364

579

42.4%

21

785

57.6%

22

Total

3,440

1,469

42.7%

22

1,971

57.3%

22

gtsummary package

Nếu bạn muốn in các thống kê tóm tắt của mình dưới dạng đồ họa đẹp mắt, sẵn sàng xuất bản, bạn có thể sử dụng package gtsummary và hàm của nó

## # A tibble: 5 x 10
##   variable     n   min   max median   iqr  mean     sd    se    ci
##                 
## 1 age       5802   0    84     13      17  16.1 12.6   0.166 0.325
## 2 ct_blood  5888  16    26     22       2  21.2  1.69  0.022 0.043
## 3 ht_cm     5888   4   295    129      68 125.  49.5   0.645 1.26 
## 4 temp      5739  35.2  40.8   38.8     1  38.6  0.977 0.013 0.025
## 5 wt_kg     5888 -11   111     54      25  52.6 18.6   0.242 0.475

5. Phần code ban đầu có thể trông phức tạp một chút, nhưng kết quả đầu ra trông rất đẹp và in ra Viewer panel của RStudio dưới dạng một ảnh HTML. Đọc bản tóm tắt ở đây.

Bạn cũng có thể thêm kết quả của các kiểm định thống kê vào các bảng của gtsummary. Quy trình này được trình bày ở mục gtsummary trong chương .

Để giới thiệu về

## # A tibble: 5 x 10
##   variable     n   min   max median   iqr  mean     sd    se    ci
##                 
## 1 age       5802   0    84     13      17  16.1 12.6   0.166 0.325
## 2 ct_blood  5888  16    26     22       2  21.2  1.69  0.022 0.043
## 3 ht_cm     5888   4   295    129      68 125.  49.5   0.645 1.26 
## 4 temp      5739  35.2  40.8   38.8     1  38.6  0.977 0.013 0.025
## 5 wt_kg     5888 -11   111     54      25  52.6 18.6   0.242 0.475

5, trước tiên chúng ta sẽ chỉ ra các quy trình cơ bản nhất, giúp bạn thực sự tạo ra một bảng lớn và đẹp. Sau đó, chúng ta sẽ tìm hiểu chi tiết hơn về cách thực hiện các điều chỉnh và các bảng được thiết kế sẵn.

Bảng tổng hợp

Cách làm việc mặc định của

## # A tibble: 5 x 10
##   variable     n   min   max median   iqr  mean     sd    se    ci
##                 
## 1 age       5802   0    84     13      17  16.1 12.6   0.166 0.325
## 2 ct_blood  5888  16    26     22       2  21.2  1.69  0.022 0.043
## 3 ht_cm     5888   4   295    129      68 125.  49.5   0.645 1.26 
## 4 temp      5739  35.2  40.8   38.8     1  38.6  0.977 0.013 0.025
## 5 wt_kg     5888 -11   111     54      25  52.6 18.6   0.242 0.475

5 khá kinh ngạc - nó lấy các cột bạn cung cấp và tạo một bảng tóm tắt chỉ trong một lệnh. Hàm in ra số liệu thống kê phù hợp với lớp cột: trung vị và khoảng tứ phân vị (IQR) cho các cột số, và số lượng (%) cho các cột danh mục. Giá trị missing được chuyển đổi thành “Unknown”. Chú thích được thêm vào cuối bảng để giải thích các phép tính thống kê, trong khi tổng N được hiển thị ở trên cùng.

`# equivalent, alternative to above by element name

summary(linelist$age_years)[["1st Qu."]] `

7

Characteristic N = 5,8881 age_years 13 (6, 23) Unknown 86 gender f 2,807 (50%) m 2,803 (50%) Unknown 278 outcome Death 2,582 (57%) Recover 1,983 (43%) Unknown 1,323 fever 4,549 (81%) Unknown 249 temp 38.80 (38.20, 39.20) Unknown 149 hospital Central Hospital 454 (7.7%) Military Hospital 896 (15%) Missing 1,469 (25%) Other 885 (15%) Port Hospital 1,762 (30%) St. Mark's Maternity Hospital (SMMH) 422 (7.2%)

1 Median (IQR); n (%)

Các điều chỉnh

Bây giờ chúng tôi sẽ giải thích cách hoạt động của hàm và cách điều chỉnh. Các đối số chính được trình bày chi tiết bên dưới:

## get information about each column in a dataset summary(linelist)

31 Bạn có thể phân tầng bảng của mình theo một cột (ví dụ theo

# import the linelist linelist <- import("linelist_cleaned.rds")

90), để tạo thành bảng 2 chiều.

## get information about each column in a dataset summary(linelist)

33 Sử dụng phương trình để chỉ định thống kê nào sẽ được hiển thị và cách hiển thị chúng. Có hai vế của phương trình, được ngăn cách bởi dấu

## get information about each column in a dataset summary(linelist)

34. Ở vế phải, trong dấu ngoặc kép, là hiển thị phép toán thống kê mong muốn, và ở vế trái là các cột mà phép thống kê đó sẽ áp dụng.

  • Vế phải của phương trình sử dụng cú pháp của hàm

    get information about each variable in a dataset

    skim(linelist)

    33 từ stringr (xem ), với chuỗi hiển thị mong muốn trong dấu ngoặc kép và các phép toán thống kê trong dấu ngoặc nhọn. Bạn có thể thêm các phép thống kê như là “n” (số lượng), “N” (mẫu số), “mean”, “median”, “sd”, “max”, “min”, phân vị “p##” như là “p25”, hoặc phần trăm của một tổng như là “p”. Xem

    get information about each column in a dataset

    summary(linelist)
    36 để biết thêm chi tiết.
  • Đối với phía bên trái của phương trình, bạn có thể chỉ định các cột theo tên (ví dụ:

    get information about each column in a dataset

    summary(linelist)

    37 hoặc

    get information about each column in a dataset

    summary(linelist)
  • hoặc sử dụng các hàm trợ giúp như

    get information about each column in a dataset

    summary(linelist)

    39,

    get information about each column in a dataset

    summary(linelist)

    40,

    get information about each variable in a dataset

    skim(linelist)

    87,

    get information about each variable in a dataset

    skim(linelist)
    83, v.v.

Một ví dụ đơn giản về phương trình

## get information about each column in a dataset summary(linelist)

33 có thể tham khảo ở bên dưới, để chỉ in giá trị trung bình của cột

## get information about each column in a dataset summary(linelist)

44:

`# equivalent, alternative to above by element name

summary(linelist$age_years)[["1st Qu."]] `

8

Characteristic N = 5,8881 age_years 16 Unknown 86

1 Mean

Một phương trình phức tạp hơn một chút có thể như

## get information about each column in a dataset summary(linelist)

45, kết hợp các giá trị max và min trong dấu ngoặc đơn và được phân tách bằng dấu phẩy:

`# equivalent, alternative to above by element name

summary(linelist$age_years)[["1st Qu."]] `

9

Characteristic N = 5,8881 age_years (0, 84) Unknown 86

1 (Range)

Bạn cũng có thể phân biệt cú pháp cho các cột hoặc loại cột riêng biệt. Trong ví dụ phức tạp hơn bên dưới, giá trị được cung cấp cho

## get information about each column in a dataset summary(linelist)

46 là một danh sách chỉ ra rằng đối với tất cả các cột dạng số thì bảng sẽ in ra giá trị trung bình và độ lệch chuẩn bên trong ngoặc, trong khi các cột dạng danh sách thì sẽ in ra n, mẫu số, và phần trăm.

# import the linelist linelist <- import("linelist_cleaned.rds")

31 Điều chỉnh các chữ số và làm tròn. Theo tùy chọn, điều này có thể được chỉ định chỉ dành cho các cột dạng số liên tục (như bên dưới).

## get information about each column in a dataset summary(linelist)

48 Điều chỉnh cách hiển thị tên cột. Cung cấp tên cột và nhãn mong muốn của nó được phân tách bằng dấu ngã. Theo mặc định thì tên cột được hiển thị.

## get information about each column in a dataset summary(linelist)

49 Điều chỉnh cách giá trị missing được hiển thị. Mặc định hiển thị là “Unknown”.

## get information about each column in a dataset summary(linelist)

50 Sử dụng để điều chỉnh số lượng cấp độ của thống kê được hiển thị Cú pháp tương tự như

## get information about each column in a dataset summary(linelist)

33 trong đó bạn cung cấp một phương trình với các cột ở bên trái và một giá trị ở bên phải. Hai trường hợp phổ biến bao gồm:

  • get information about each column in a dataset

    summary(linelist)

    52 Buộc các cột nhị phân (ví dụ:

    get information about each column in a dataset

    summary(linelist)
    53 có/không) hiển thị tất cả các cấp độ thay vì chỉ hiện thị hàng “có”
  • get information about each column in a dataset

    summary(linelist)
    54 Cho phép các kết quả thống kê được trình bày theo nhiều dòng cho mỗi biến, như được trình bày trong phần sau

Trong ví dụ dưới đây, mỗi đối số này được sử dụng để điều chỉnh bảng ban đầu:

`linelist %>% get_summary_stats(

age, wt_kg, ht_cm, ct_blood, temp,  # columns to calculate for
type = "common")                    # summary stats to return`
0

`linelist %>% get_summary_stats(

age, wt_kg, ht_cm, ct_blood, temp,  # columns to calculate for
type = "common")                    # summary stats to return`
1

Characteristic Death, N = 2,5821 Recover, N = 1,9831 Age (years) 15.9 (12.3) 16.1 (13.0) Missing 32 28 Gender f 1,227 / 2,455 (50%) 953 / 1,903 (50%) m 1,228 / 2,455 (50%) 950 / 1,903 (50%) Missing 127 80 fever no 458 / 2,460 (19%) 361 / 1,904 (19%) yes 2,002 / 2,460 (81%) 1,543 / 1,904 (81%) Missing 122 79 Temperature 38.6 (1.0) 38.6 (1.0) Missing 60 55 Hospital Central Hospital 193 / 2,582 (7.5%) 165 / 1,983 (8.3%) Military Hospital 399 / 2,582 (15%) 309 / 1,983 (16%) Missing 611 / 2,582 (24%) 514 / 1,983 (26%) Other 395 / 2,582 (15%) 290 / 1,983 (15%) Port Hospital 785 / 2,582 (30%) 579 / 1,983 (29%) St. Mark's Maternity Hospital (SMMH) 199 / 2,582 (7.7%) 126 / 1,983 (6.4%)

1 Mean (SD); n / N (%)

Thống kê nhiều dòng cho các biến liên tục

Nếu bạn muốn in nhiều dòng thống kê cho các biến liên tục, bạn có thể thiết lập

## get information about each column in a dataset summary(linelist)

50 thành “continuous2”. Bạn có thể kết hợp tất cả các yếu tố được hiển thị trước đó trong một bảng bằng cách chọn thống kê bạn muốn hiển thị. Để làm điều này, bạn cần cho hàm biết rằng bạn muốn khôi phục bảng bằng cách nhập type là “continuous2”. Số lượng các giá trị missing được hiển thị là “Unknown”.

`linelist %>% get_summary_stats(

age, wt_kg, ht_cm, ct_blood, temp,  # columns to calculate for
type = "common")                    # summary stats to return`
2

Characteristic N = 5,888 age_years Mean (SD) 16 (13) Median (IQR) 13 (6, 23) Range 0, 84 Unknown 86 temp Mean (SD) 38.56 (0.98) Median (IQR) 38.80 (38.20, 39.20) Range 35.20, 40.80 Unknown 149

Có nhiều cách khác để chỉnh sửa các bảng này, bao gồm thêm giá trị p, chỉnh sửa màu sắc và tiêu đề, v.v. Các phần này được đề cập trong tài liệu trợ giúp đính kèm (nhập

## get information about each column in a dataset summary(linelist)

36 trong cửa sổ Console), và một số được đề cập trong chương .

base R

Bạn có thể sử dụng hàm

## # A tibble: 5 x 10
##   variable     n   min   max median   iqr  mean     sd    se    ci
##                 
## 1 age       5802   0    84     13      17  16.1 12.6   0.166 0.325
## 2 ct_blood  5888  16    26     22       2  21.2  1.69  0.022 0.043
## 3 ht_cm     5888   4   295    129      68 125.  49.5   0.645 1.26 
## 4 temp      5739  35.2  40.8   38.8     1  38.6  0.977 0.013 0.025
## 5 wt_kg     5888 -11   111     54      25  52.6 18.6   0.242 0.475

6 để tạo bảng đơn và bảng chéo các cột. Không giống như các cách ở trên, bạn phải chỉ định data frame mỗi khi bạn tham chiếu đến tên cột, như được trình bày dưới đây.

THẬN TRỌNG: Giá trị

# import the linelist linelist <- import("linelist_cleaned.rds")

11 (missing) sẽ không sẽ không được lập bảng trừ khi bạn bao gồm đối số

## get information about each column in a dataset summary(linelist)

59 (cũng có thể được đặt thành “no” hoặc “ifany”).

MẸO: Bạn có thể sử dụng

## get information about each column in a dataset summary(linelist)

60 từ package magrittr để loại bỏ việc lặp lại các data frame trong các hàm base. Chẳng hạn, ví dụ bên dưới có thể được viết lại thành

## get information about each column in a dataset summary(linelist)

61

`linelist %>% get_summary_stats(

age, wt_kg, ht_cm, ct_blood, temp,  # columns to calculate for
type = "common")                    # summary stats to return`
3

`linelist %>% get_summary_stats(

age, wt_kg, ht_cm, ct_blood, temp,  # columns to calculate for
type = "common")                    # summary stats to return`
4

Có thể lập bảng chéo từ nhiều cột bằng cách liệt kê chúng nối tiếp nhau, phân tách bằng dấu phẩy. Hoặc là, bạn có thể gán cho mỗi cột một “tên” như

## get information about each column in a dataset summary(linelist)

62.

`linelist %>% get_summary_stats(

age, wt_kg, ht_cm, ct_blood, temp,  # columns to calculate for
type = "common")                    # summary stats to return`
5

`linelist %>% get_summary_stats(

age, wt_kg, ht_cm, ct_blood, temp,  # columns to calculate for
type = "common")                    # summary stats to return`
6

Tỷ lệ

Để trả về tỷ lệ, hãy chuyển bảng trên vào hàm

## get information about each column in a dataset summary(linelist)

63. Sử dụng đối số

## get information about each column in a dataset summary(linelist)

64 để chỉ định xem bạn muốn tỷ lệ của hàng (1), của cột (2) hay của toàn bảng (3). Để dễ nhìn, chúng ta pipe bảng trên vào hàm

## get information about each variable in a dataset skim(linelist)

26 của base R, chỉ định 2 chữ số sau dấu phẩy.

`linelist %>% get_summary_stats(

age, wt_kg, ht_cm, ct_blood, temp,  # columns to calculate for
type = "common")                    # summary stats to return`
7

`linelist %>% get_summary_stats(

age, wt_kg, ht_cm, ct_blood, temp,  # columns to calculate for
type = "common")                    # summary stats to return`
8

Tổng

Để thêm tổng hàng và tổng cột, hãy chuyển bảng vào hàm

## get information about each column in a dataset summary(linelist)

66. Cách này hoạt động cho cả số lượng và tỷ lệ.

`linelist %>% get_summary_stats(

age, wt_kg, ht_cm, ct_blood, temp,  # columns to calculate for
type = "common")                    # summary stats to return`
9

Chuyển đổi thành data frame

Chuyển đổi trực tiếp một đối tượng dạng

## # A tibble: 5 x 10
##   variable     n   min   max median   iqr  mean     sd    se    ci
##                 
## 1 age       5802   0    84     13      17  16.1 12.6   0.166 0.325
## 2 ct_blood  5888  16    26     22       2  21.2  1.69  0.022 0.043
## 3 ht_cm     5888   4   295    129      68 125.  49.5   0.645 1.26 
## 4 temp      5739  35.2  40.8   38.8     1  38.6  0.977 0.013 0.025
## 5 wt_kg     5888 -11   111     54      25  52.6 18.6   0.242 0.475

6 sang một data frame không phải là một đường thẳng. Cách tiếp cận được trình bày như dưới đây: