lOMoARcPSD| 48641284
Họ và tên : Lê Huỳnh Đức
Lớp : TH26.32
MSV : 2621151456
Đề tài 2: Cài đặt ngôn ngữ R, tạo một bảng dữ liệu và thực hiện cácthống kê, vẽ biểu đồ... (làm
trên máy, copy các câu lệnh ra giấy)
Bài Làm
> BTKN <-c("Le Huynh Duc","TH26.32","2621151456" )
> BTKN
[1] "Le Huynh Duc" "TH26.32" "2621151456"
> data <- data.frame (
+ Học_Sinh = c("Nam", "Lan", "Hùng", "An", "Bình", "Tú", "Dũng", "Hà",
"Phương", "Quang"),
+ Hóa = c(8, 7, 6, 9, 5, 7, 8, 6, 8, 9),
+ Sinh = c(7, 8, 5, 6, 7, 9, 6, 7, 8, 6),
+ Văn = c(8, 9, 5, 7, 6, 7, 8, 9, 7, 8),
+ Toán = c(9, 8, 7, 6, 5, 9, 8, 7, 6, 9),
+ Lý = c(8, 7, 6, 8, 7, 6, 9, 7, 8, 9))
> data
Học_Sinh Hóa Sinh Văn Toán Lý
1 Nam 8 7 8 9 8
2 Lan 7 8 9 8 7
3 Hùng 6 5 5 7 6
4 An 9 6 7 6 8
5 Bình 5 7 6 5 7
6 Tú 7 9 7 9 6
lOMoARcPSD| 48641284
7 Dũng 8 6 8 8 9
8 Hà 6 7 9 7 7
9 Phương 8 8 7 6 8
10 Quang 9 6 8 9 9
> # Tính điểm trung bình
> data$Điểm_Trung_Bình <- rowMeans(data[, 2:6])
> # Xếp loại học lực dựa trên điểm trung bình
> data$Học_Lực <- cut(data$Điểm_Trung_Bình,
+ breaks = c(-Inf, 5, 6.5, 8, Inf),
+ labels = c("Yếu", "Trung bình", "Khá", "Giỏi" ))
> print(data )
Học_Sinh Hóa Sinh Văn Toán Lý Điểm_Trung_Bình Học_Lực
1 Nam 8 7 8 9 8 8.0 Khá
2 Lan 7 8 9 8 7 7.8 Khá
3 Hùng 6 5 5 7 6 5.8 Trung bình
4 An 9 6 7 6 8 7.2 Khá
5 Bình 5 7 6 5 7 6.0 Trung bình
6 Tú 7 9 7 9 6 7.6 Khá
7 Dũng 8 6 8 8 9 7.8 Khá
8 Hà 6 7 9 7 7 7.2 Khá
9 Phương 8 8 7 6 8 7.4 K
10 Quang 9 6 8 9 9 8.2 Giỏi
> # Thống kê số học sinh giỏi
> so_hoc_sinh_gioi <- sum(data$Học_Lực == "Giỏi" )
> # Thống kê số học sinh cần cải thiện điểm Toán hoặc Văn nếu điểm thấp hơn 6
> can_cai_thien_toan <- sum(data$Toán < 6)
lOMoARcPSD| 48641284
> can_cai_thien_van <- sum(data$Văn < 6)
> can_cai_thien <- sum(data$Toán < 6 | data$Văn < 6)
> # In kết quả
> cat("Số học sinh giỏi:", so_hoc_sinh_gioi, "\n" )
Số học sinh giỏi: 1
> cat("Số học sinh cần cải thiện điểm môn Toán:", can_cai_thien_toan, "\n" )
Số học sinh cần cải thiện điểm môn Toán: 1
> cat("Số học sinh cần cải thiện điểm môn Văn:", can_cai_thien_van, "\n" )
Số học sinh cần cải thiện điểm môn Văn: 1
> cat("Số học sinh cần cải thiện điểm môn Toán hoặc Văn:", can_cai_thien, "\n" )
Số học sinh cần cải thiện điểm môn Toán hoặc Văn: 2
> # Tính điểm trung bình của từng môn học
> mean_hoa <- mean(data$Hóa )
> mean_sinh <- mean(data$Sinh )
> mean_van <- mean(data$Văn )
> mean_toan <- mean(data$Toán )
> mean_ly <- mean(data$Lý )
> # Tạo bảng dữ liệu cho điểm trung bình của từng môn học
> mean_data <- data.frame (
+ Môn_Học = c("Hóa", "Sinh", "Văn", "Toán", "Lý"),
+ Điểm_Trung_Bình = c(mean_hoa, mean_sinh, mean_van, mean_toan, mean_ly)
+ )
> mean_data
Môn_Học Điểm_Trung_Bình
1 Hóa 7.3
2 Sinh 6.9
lOMoARcPSD| 48641284
3 Văn 7.4
4 Toán 7.4
5 Lý 7.5
> # Vẽ biểu đồ cột cho điểm trung bình của từng môn học
> ggplot(mean_data, aes(x = Môn_Học, y = Điểm_Trung_Bình, fill = Môn_Học))
+
+ geom_bar(stat = "identity") +
+ labs(title = "Điểm Trung Bình của Từng Môn Học", x = "Môn Học", y =
"Điểm Trung Bình") +
+ theme_minimal ()
lOMoARcPSD| 48641284
> # Vẽ biểu đồ phân phối điểm số môn Toán và Hóa
> ggplot(data) +
+ geom_histogram(aes(x = Toán, y = ..density..), binwidth = 1, fill = "blue", alpha
= 0.5) +
+ geom_density(aes(x = Toán), color = "blue", size = 1) +
+ geom_histogram(aes(x = Hóa, y = ..density..), binwidth = 1, fill = "red", alpha
= 0.5) +
lOMoARcPSD| 48641284
+ geom_density(aes(x = Hóa), color = "red", size = 1) +
+ labs(title = "Phân phối điểm số môn Toán và Hóa", x = "Điểm số", y = "Mật
độ") +
+ scale_x_continuous(breaks = seq(0, 10, 1)) +
+ theme_minimal() +
+ theme(legend.position = "none") +
+ annotate("text", x = 8, y = 0.15, label = "Toán", color = "blue", size = 5) +
+ annotate("text", x = 7, y = 0.1, label = "Hóa", color = "red", size = 5)
lOMoARcPSD| 48641284
# Thống kê số lượng học sinh theo học lực
> hoc_luc_summary <- data %>%
+ group_by(Học_Lực) %>%
+ summarise(Số_Lượng = n ())
> hoc_luc_summary
# A tibble: 3 × 2
lOMoARcPSD| 48641284
Học_Lực Số_Lượng
<fct> <int>
1 Trung bình 2
2 Khá 7
3 Giỏi 1
> Vẽ biểu đồ tròn thống kê học lực của học sinh
> ggplot(hoc_luc_summary, aes(x = "", y = Số_Lượng, fill = Học_Lực)) +
+ geom_bar(width = 1, stat = "identity") +
+ coord_polar("y") +
+ labs(title = "Thống kê học lực của học sinh") +
+ theme_minimal() +
+ theme(axis.text.x = element_blank()) +
+ geom_text(aes(label = Số_Lượng), position = position_stack(vjust = 0.5))
lOMoARcPSD| 48641284

Preview text:

lOMoAR cPSD| 48641284
Họ và tên : Lê Huỳnh Đức Lớp : TH26.32 MSV : 2621151456
Đề tài 2: Cài đặt ngôn ngữ R, tạo một bảng dữ liệu và thực hiện cácthống kê, vẽ biểu đồ... (làm
trên máy, copy các câu lệnh ra giấy) Bài Làm
> BTKN <-c("Le Huynh Duc","TH26.32","2621151456" ) > BTKN
[1] "Le Huynh Duc" "TH26.32" "2621151456" > data <- data.frame (
+ Học_Sinh = c("Nam", "Lan", "Hùng", "An", "Bình", "Tú", "Dũng", "Hà", "Phương", "Quang"),
+ Hóa = c(8, 7, 6, 9, 5, 7, 8, 6, 8, 9),
+ Sinh = c(7, 8, 5, 6, 7, 9, 6, 7, 8, 6),
+ Văn = c(8, 9, 5, 7, 6, 7, 8, 9, 7, 8),
+ Toán = c(9, 8, 7, 6, 5, 9, 8, 7, 6, 9),
+ Lý = c(8, 7, 6, 8, 7, 6, 9, 7, 8, 9)) > data
Học_Sinh Hóa Sinh Văn Toán Lý 1 Nam 8 7 8 9 8 2 Lan 7 8 9 8 7 3 Hùng 6 5 5 7 6 4 An 9 6 7 6 8 5 Bình 5 7 6 5 7 6 Tú 7 9 7 9 6 lOMoAR cPSD| 48641284 7 Dũng 8 6 8 8 9 8 Hà 6 7 9 7 7 9 Phương 8 8 7 6 8 10 Quang 9 6 8 9 9
> # Tính điểm trung bình
> data$Điểm_Trung_Bình <- rowMeans(data[, 2:6])
> # Xếp loại học lực dựa trên điểm trung bình
> data$Học_Lực <- cut(data$Điểm_Trung_Bình,
+ breaks = c(-Inf, 5, 6.5, 8, Inf),
+ labels = c("Yếu", "Trung bình", "Khá", "Giỏi" )) > print(data )
Học_Sinh Hóa Sinh Văn Toán Lý Điểm_Trung_Bình Học_Lực 1 Nam 8 7 8 9 8 8.0 Khá 2 Lan 7 8 9 8 7 7.8 Khá 3
Hùng 6 5 5 7 6 5.8 Trung bình 4 An 9 6 7 6 8 7.2 Khá 5
Bình 5 7 6 5 7 6.0 Trung bình 6 Tú 7 9 7 9 6 7.6 Khá 7 Dũng 8 6 8 8 9 7.8 Khá 8 Hà 6 7 9 7 7 7.2 Khá 9 Phương 8 8 7 6 8 7.4 Khá 10 Quang 9 6 8 9 9 8.2 Giỏi
> # Thống kê số học sinh giỏi
> so_hoc_sinh_gioi <- sum(data$Học_Lực == "Giỏi" )
> # Thống kê số học sinh cần cải thiện điểm Toán hoặc Văn nếu điểm thấp hơn 6
> can_cai_thien_toan <- sum(data$Toán < 6) lOMoAR cPSD| 48641284
> can_cai_thien_van <- sum(data$Văn < 6)
> can_cai_thien <- sum(data$Toán < 6 | data$Văn < 6) > # In kết quả
> cat("Số học sinh giỏi:", so_hoc_sinh_gioi, "\n" ) Số học sinh giỏi: 1
> cat("Số học sinh cần cải thiện điểm môn Toán:", can_cai_thien_toan, "\n" )
Số học sinh cần cải thiện điểm môn Toán: 1
> cat("Số học sinh cần cải thiện điểm môn Văn:", can_cai_thien_van, "\n" )
Số học sinh cần cải thiện điểm môn Văn: 1
> cat("Số học sinh cần cải thiện điểm môn Toán hoặc Văn:", can_cai_thien, "\n" )
Số học sinh cần cải thiện điểm môn Toán hoặc Văn: 2
> # Tính điểm trung bình của từng môn học
> mean_hoa <- mean(data$Hóa )
> mean_sinh <- mean(data$Sinh )
> mean_van <- mean(data$Văn )
> mean_toan <- mean(data$Toán )
> mean_ly <- mean(data$Lý )
> # Tạo bảng dữ liệu cho điểm trung bình của từng môn học
> mean_data <- data.frame (
+ Môn_Học = c("Hóa", "Sinh", "Văn", "Toán", "Lý"),
+ Điểm_Trung_Bình = c(mean_hoa, mean_sinh, mean_van, mean_toan, mean_ly) + ) > mean_data
Môn_Học Điểm_Trung_Bình 1 Hóa 7.3 2 Sinh 6.9 lOMoAR cPSD| 48641284 3 Văn 7.4 4 Toán 7.4 5 Lý 7.5
> # Vẽ biểu đồ cột cho điểm trung bình của từng môn học
> ggplot(mean_data, aes(x = Môn_Học, y = Điểm_Trung_Bình, fill = Môn_Học)) +
+ geom_bar(stat = "identity") +
+ labs(title = "Điểm Trung Bình của Từng Môn Học", x = "Môn Học", y = "Điểm Trung Bình") + + theme_minimal () lOMoAR cPSD| 48641284
> # Vẽ biểu đồ phân phối điểm số môn Toán và Hóa > ggplot(data) +
+ geom_histogram(aes(x = Toán, y = ..density..), binwidth = 1, fill = "blue", alpha = 0.5) +
+ geom_density(aes(x = Toán), color = "blue", size = 1) +
+ geom_histogram(aes(x = Hóa, y = ..density..), binwidth = 1, fill = "red", alpha = 0.5) + lOMoAR cPSD| 48641284
+ geom_density(aes(x = Hóa), color = "red", size = 1) +
+ labs(title = "Phân phối điểm số môn Toán và Hóa", x = "Điểm số", y = "Mật độ") +
+ scale_x_continuous(breaks = seq(0, 10, 1)) + + theme_minimal() +
+ theme(legend.position = "none") +
+ annotate("text", x = 8, y = 0.15, label = "Toán", color = "blue", size = 5) +
+ annotate("text", x = 7, y = 0.1, label = "Hóa", color = "red", size = 5) lOMoAR cPSD| 48641284
# Thống kê số lượng học sinh theo học lực
> hoc_luc_summary <- data %>%
+ group_by(Học_Lực) %>%
+ summarise(Số_Lượng = n ()) > hoc_luc_summary # A tibble: 3 × 2 lOMoAR cPSD| 48641284 Học_Lực Số_Lượng 1 Trung bình 2 2 Khá 7 3 Giỏi 1
> Vẽ biểu đồ tròn thống kê học lực của học sinh
> ggplot(hoc_luc_summary, aes(x = "", y = Số_Lượng, fill = Học_Lực)) +
+ geom_bar(width = 1, stat = "identity") + + coord_polar("y") +
+ labs(title = "Thống kê học lực của học sinh") + + theme_minimal() +
+ theme(axis.text.x = element_blank()) +
+ geom_text(aes(label = Số_Lượng), position = position_stack(vjust = 0.5)) lOMoAR cPSD| 48641284