Bài giảng Biên tập dữ liệu
lượt xem 1
download
Bài giảng trình bày các nội dung: dùng hàm cơ bản trong R để mã hóa, chuyển đổi, đổi tên biến; dùng package tidyverse; biên tập dữ liệu với hàm cơ bản trong R; hợp nhất dữ liệu...
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Biên tập dữ liệu
- Tuan V. Nguyen Garvan Institute of Medical Research Professor, UNSW School of Public Health and Community Medicine Professor of Predictive Medicine, University of Technology Sydney Adj. Professor of Epidemiology and Biostatistics, School of Medicine Sydney, University of Notre Dame Australia Phân tích dữ liệu và ứng dụng | Đại học Dược Hà Nội | 12/6 to 17/6/2019 © Tuan V. Nguyen
- Biên tập dữ liệu • Dùng hàm cơ bản trong R – mã hóa, hoán chuyển, đổi tên biến, v.v. • Dùng package tidyverse – select, filter, mutate, arrange, summarize
- Biên tập dữ liệu với hàm cơ bản trong R
- Dấu "$" • Rất quan trọng! • $ nối kết dataset và biến số (dataframe và variable) dat$var1 • có nghĩa là biến "var1" thuộc dataset "dat"
- Dấu "$" bw = read.csv("~/Dropbox/_Conferences and Workshops/TDTU 2018/Datasets/birthwt.csv") head(bw, 3) id low age lwt race smoke ptl ht ui ftv bwt 1 85 0 19 182 2 0 0 0 1 0 2523 2 86 0 33 155 3 0 0 0 0 3 2551 3 87 0 20 105 1 1 0 0 0 1 2557 > weight = lwt*0.453592 Error: object 'lwt' not found > bw$weight = bw$lwt*0.453592 > head(bw, 3) id low age lwt race smoke ptl ht ui ftv bwt weight 1 85 0 19 182 2 0 0 0 1 0 2523 82.55374 2 86 0 33 155 3 0 0 0 0 3 2551 70.30676 3 87 0 20 105 1 1 0 0 0 1 2557 47.62716
- Mã hoá (coding) # Chúng ta muốn tạo ra một biến mới "lowbw" mã hóa từ biến low. Nếu low=1 thì lowbw="Yes"; nếu low=0 thì lowbw="No" bw$lowbw[low=1]
- ifelse # Chúng ta muốn tạo ra một biến mới "smoker". Nếu smoke=1 thì smoker=Yes, tất cả các giá trị khác thì smoker=No bw$smoker = ifelse(bw$smoke==1, 1, 0)
- as.factor và as.numeric • Biến character: dùng cho phân nhóm • Biến numeric: dùng cho tính toán > head(bw, 3) id low age lwt race smoke ptl ht ui ftv bwt weight lowbw smoker 1 85 0 19 182 2 0 0 0 1 0 2523 82.55374 Yes 0 2 86 0 33 155 3 0 0 0 0 3 2551 70.30676 Yes 0 3 87 0 20 105 1 1 0 0 0 1 2557 47.62716 Yes 1 > bw$temp = as.factor(bw$race) > mean(bw$temp) [1] NA Warning message: In mean.default(bw$temp) : argument is not numeric or logical: returning NA > mean(bw$race) [1] 1.846561
- sort() > bw$bwt [1] 2523 2551 2557 2594 2600 2622 2637 2637 2663 2665 2722 2733 2751 2750 [15] 2769 2769 2778 2782 2807 2821 2835 2835 2836 2863 2877 2877 2906 2920 [29] 2920 2920 2920 2948 2948 2977 2977 2977 2977 2922 3005 3033 3042 3062 [43] 3062 3062 3062 3062 3080 3090 3090 3090 3100 3104 3132 3147 3175 3175 > sort(bw$bwt) [1] 709 1021 1135 1330 1474 1588 1588 1701 1729 1790 1818 1885 1893 1899 [15] 1928 1928 1928 1936 1970 2055 2055 2082 2084 2084 2100 2125 2126 2187 [29] 2187 2211 2225 2240 2240 2282 2296 2296 2301 2325 2353 2353 2367 2381 [43] 2381 2381 2410 2410 2410 2414 2424 2438 2442 2450 2466 2466 2466 2495 [57] 2495 2495 2495 2523 2551 2557 2594 2600 2622 2637 2637 2663 2665 2722
- Thay đổi tên biến (rename) Chúng ta muốn đổi tên biến "low" thành "low.bw", và "lwt" thành "mother.weight" > bw = read.csv("~/Dropbox/_Conferences and Workshops/TDTU 2018/Datasets/birthwt.csv") > head(bw, 3) id low age lwt race smoke ptl ht ui ftv bwt 1 85 0 19 182 2 0 0 0 1 0 2523 2 86 0 33 155 3 0 0 0 0 3 2551 3 87 0 20 105 1 1 0 0 0 1 2557 names(bw)[names(bw)=="low"]
- Hợp nhất dữ liệu: merge() id = c(1,2,3,4) id = c(1,2,3,4,5) sex=c("M","F","M","F") age=c(21,34,45,32,18) dat1=data.frame(id,sex) dat2=data.frame(id,age) dat = merge(dat1, dat2, by="id") dat = merge(dat1, dat2, by="id", all.x=T, all.y=T)
- Tóm lược biên tập dữ liệu • Biên tập dữ liệu bao gồm – mã hóa (ifelse) – sắp xếp thứ tự – thay đổi tên biến số (names) – hợp nhất dữ liệu (merge)
- Biên tập dữ liệu với "tidyverse"
- Package tidyverse • Hadley Wickham phát triển • Tổng hợp từ dplyr, ggplot2 • Dùng cho khoa học dữ liệu https://www.tidyverse.org • Rất tiện cho quản lí dữ liệu phức tạp • Chuẩn bị dữ liệu cho phân tích
- Những hàm chính trong tidyverse/dplyr 5 'động từ' chính: • select() chọn những cột/field liên quan • filter() chọn những dòng quan tâm • mutate() thêm cột/field • arrange() thứ tự hóa dòng dữ liệu • summarize()tóm tắt dữ liệu theo dòng %>% (pipe) operator
- "Văn phạm" chính của tidyverse select(dataframe, conditions) filter(dataframe, conditions) mutate(dataframe, conditions) arrange(dataframe, conditions) summarize(dataframe, conditions) hoặc dataframe %>% select(conditions)
- Dữ liệu thực hành: cân nặng trẻ sơ sinh bw = read.csv("birthwt.csv") head(bw) id low age lwt race smoke ptl ht ui ftv bwt 1 85 0 19 182 2 0 0 0 1 0 2523 2 86 0 33 155 3 0 0 0 0 3 2551 3 87 0 20 105 1 1 0 0 0 1 2557 4 88 0 21 108 1 1 0 0 1 2 2594 5 89 0 18 107 1 1 0 0 1 0 2600 6 91 0 21 124 3 0 0 0 0 0 2622
- select() – chọn những cột liên quan full data (bw) 189 dòng, 11 cột) id low age lwt race smoke ptl ht ui ftv bwt 1 85 0 19 182 2 0 0 0 1 0 2523 2 86 0 33 155 3 0 0 0 0 3 2551 3 87 0 20 105 1 1 0 0 0 1 2557 4 88 0 21 108 1 1 0 0 1 2 2594 5 89 0 18 107 1 1 0 0 1 0 2600 6 91 0 21 124 3 0 0 0 0 0 2622 temp = select(bw, c("low", "bwt", "lwt", "age")) temp = bw %>% select(c("low", "bwt", "lwt", "age")) head(temp) > head(temp) low bwt lwt age 1 0 2523 182 19 2 0 2551 155 33 3 0 2557 105 20 4 0 2594 108 21 5 0 2600 107 18 6 0 2622 124 21
- filter() – chọn những dòng liên quan temp = bw %>% filter(race==1, bwt
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Cơ sở Dữ liệu SQL - Phần 3: Truy vấn (Query) và tạo View - Giải các truy vấn khó
4 p | 351 | 47
-
Bài giảng Cơ sở dữ liệu phân tán: Chương 1 - Nguyễn Trung Trực
25 p | 409 | 46
-
Bài giảng Cấu trúc dữ liệu: Chương 2 - Nguyễn Xuân Vinh
38 p | 113 | 18
-
Bài giảng Cơ sở Dữ liệu SQL - Phần 4: Quản lý điểm học tập của sinh viên
5 p | 215 | 12
-
Bài giảng Cấu trúc dữ liệu - PGS. TS Trần Cao Đệ
10 p | 167 | 9
-
Bài giảng Cơ sở dữ liệu: Chương 8 - TS. Nguyễn Quốc Tuấn
16 p | 86 | 9
-
Tập bài giảng Cơ sơ dữ liệu phân tán
301 p | 50 | 8
-
Bài giảng Cơ sở dữ liệu: Chương 4 - GV. Đỗ Thị Kim Thành
36 p | 73 | 8
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Ôn tập - ĐHKHTN
22 p | 123 | 8
-
Bài giảng Cơ sở dữ liệu và quản trị cơ sở dữ liệu: Chương 5 - ThS. Nguyễn Vương Thịnh
45 p | 8 | 6
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Ôn tập Toán - Nguyễn Mạnh Hiển
9 p | 74 | 5
-
Bài giảng Khai phá dữ liệu: Bài 2 - Văn Thế Thành
13 p | 68 | 4
-
Bài giảng Cơ sở dữ liệu - Bài 1: Các khái niệm của một hệ CSDL
29 p | 57 | 3
-
Bài giảng Cơ sở dữ liệu: Bài 1 - Tổng quan về cơ sở dữ liệu
0 p | 111 | 3
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Ôn tập - Đậu Ngọc Hà Dương
44 p | 18 | 3
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Các khái niệm cơ bản - ĐHKHTN
23 p | 81 | 3
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 0 - Đỗ Bích Diệp
6 p | 63 | 2
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn