str(lib)
## 'data.frame': 72 obs. of 6 variables:
## $ faculty : chr "ศึกษาศาสตร์" "ศึกษาศาสตร์" "ศึกษาศาสตร์" "ศึกษาศาสตร์" ...
## $ month : chr "ม.ค." "ก.พ." "มี.ค." "เม.ย." ...
## $ borrows : int 652 880 668 421 517 227 262 644 903 708 ...
## $ students : int 3200 3200 3200 3200 3200 3200 3200 3200 3200 3200 ...
## $ satisfaction: num 4.1 3.8 3.4 3.6 4 3.9 4 4 3.9 3.4 ...
## $ responses : int 200 202 158 170 162 69 70 241 267 182 ...
head(lib)
## faculty month borrows students satisfaction responses
## 1 ศึกษาศาสตร์ ม.ค. 652 3200 4.1 200
## 2 ศึกษาศาสตร์ ก.พ. 880 3200 3.8 202
## 3 ศึกษาศาสตร์ มี.ค. 668 3200 3.4 158
## 4 ศึกษาศาสตร์ เม.ย. 421 3200 3.6 170
## 5 ศึกษาศาสตร์ พ.ค. 517 3200 4.0 162
## 6 ศึกษาศาสตร์ มิ.ย. 227 3200 3.9 69
library(dplyr)
library(ggplot2)
faculty_responses <- lib %>%
group_by(faculty) %>%
summarise(total_responses = sum(responses, na.rm = TRUE))
ggplot(faculty_responses, aes(x = reorder(faculty, total_responses), y = total_responses, fill = faculty)) +
geom_col(show.legend = FALSE) +
geom_text(aes(label = scales::comma(total_responses)), hjust = -0.1, size = 3.5) +
coord_flip() +
labs(
title = "จำนวนผู้ตอบแบบสอบถามการใช้งานห้องสมุดรวมแยกตามคณะ",
x = "คณะ",
y = "จำนวนผู้ตอบแบบสอบถามรวม (คน)"
) +
theme_minimal() +
expand_limits(y = max(faculty_responses$total_responses) * 1.15)
คำตอบ (3–4 บรรทัด — “มากที่สุด” ของคุณนับจากอะไร และทำไมเลือกนับแบบนั้น)
คณะศึกษาศาสตร์มีการใช้งานห้องสมุดมากที่สุด นับจากการตอบแบบสอบถาม เพราะถ้าไปนับจาการยืม อาจจะไม่ได้จำนวนผู้ใช้งานจริงๆเพราะการยืมคนยืมสามารถยืมซ้ำได้และสามารถยืมได้หลายเล่มแต่การตอบแบบสอบถามสามารถทำได้ครั้งเดียว
library(dplyr)
library(ggplot2)
month_order <- c("ม.ค.", "ก.พ.", "มี.ค.", "เม.ย.", "พ.ค.", "มิ.ย.",
"ก.ค.", "ส.ค.", "ก.ย.", "ต.ค.", "พ.ย.", "ธ.ค.")
monthly_data <- lib %>%
group_by(month) %>%
summarise(
total_borrows = sum(borrows, na.rm = TRUE),
total_responses = sum(responses, na.rm = TRUE)
) %>%
mutate(month = factor(month, levels = month_order)) %>%
arrange(month)
ggplot(monthly_data, aes(x = month, y = total_borrows, group = 1)) +
geom_line(color = "#2b5c8f", linewidth = 1.2) +
geom_point(color = "#e74c3c", size = 3) +
geom_text(aes(label = scales::comma(total_borrows)), vjust = -1, size = 3.5) +
labs(
title = "ยอดการยืมหนังสือดร็อบลงต่ำสุดในเดือน เม.ย. (1,880 เล่ม) และสูงสุดในเดือน ก.ย. (3,790 เล่ม)",
x = "เดือน",
y = "ยอดการยืมหนังสือรวม (เล่ม)"
) +
theme_minimal() +
expand_limits(y = c(1500, 4200))
คำตอบ (2 บรรทัด — แนะนำเดือนไหน เพราะอะไร)
เดือนที่น้อยที่สุด คือเดือน ก.ค. และ มิ.ย. เพราะมีการเข้าใช้น้อย ถึงจำเป็นต้องจัดกิจกรรมช่วง 2 เดือนนี้ เพราะช่วยกระตุ้นให้คนหันมาใช้บริการให้เยอะขึ้นในช่วงที่คนไม่สนใจ
sd <- SharedData$new(lib)
bscols(
widths = c(2, 10),
filter_select("fac", "เลือกคณะ", sd, ~faculty),
datatable(
sd,
rownames = FALSE,
colnames = c("คณะ", "เดือน", "ยอดยืม (เล่ม)", "จำนวนนิสิต", "ความพึงพอใจ", "ผู้ตอบแบบสอบถาม"),
options = list(pageLength = 8,
scrollX = TRUE,
autoWidth = TRUE
)
)
)
library(dplyr)
library(ggplot2)
pharm_sat <- lib %>%
filter(faculty == "เภสัชศาสตร์") %>%
summarise(
avg_sat = mean(satisfaction, na.rm = TRUE),
total_responses = sum(responses, na.rm = TRUE)
)
print(pharm_sat)
## avg_sat total_responses
## 1 4.74 32
faculty_summary <- lib %>%
group_by(faculty) %>%
summarise(
avg_sat = mean(satisfaction, na.rm = TRUE),
total_responses = sum(responses, na.rm = TRUE)
)
ggplot(faculty_summary, aes(x = reorder(faculty, avg_sat), y = avg_sat, fill = total_responses)) +
geom_col() +
geom_text(aes(label = paste0("ความพึงพอใจ: ", round(avg_sat, 1), "\n(ผู้ตอบ ", total_responses, " คน)")),
hjust = 1.1, color = "white", size = 3.5) +
coord_flip() +
scale_fill_gradient(low = "#ff7f0e", high = "#1f77b4") +
labs(
title = "ความพึงพอใจเทียบกับจำนวนผู้ตอบแบบสอบถามจริง",
subtitle = "คณะเภสัชศาสตร์มีคะแนนสูง แต่มีกลุ่มตัวอย่างผู้ตอบน้อยเกินไปอย่างมีนัยสำคัญ",
x = "คณะ",
y = "คะแนนความพึงพอใจเฉลี่ย (เต็ม 5)",
fill = "จำนวนผู้ตอบ (คน)"
) +
theme_minimal()
ตัวเลข 4.7 ถูกไหม
ถูกต้อง
ข้อสรุปนี้มีปัญหาอะไร (พร้อมตัวเลขยืนยัน)
แม้คณะเภสัชศาสตร์จะมีคะแนนความพึงพอใจสูงถึง 4.7 แต่กลับมีจำนวนผู้ตอบแบบสอบถามน้อยมาก เมื่อเทียบกับคณะอื่น ทำให้ตัวเลข 4.7 ไม่มีความน่าเชื่อถือทางสถิติยประมาณ
prompt ที่ใช้ (คัดลอกมาเต็ม ๆ อย่างน้อย 1 อัน)
============== 1 ==============================================================================
********สร้างโค้ดจากโจทย์(แคปโจทย์)
********สิ่งที่ai ให้มา
library(dplyr)
library(ggplot2)
faculty_responses <- lib %>%
group_by(faculty) %>%
summarise(total_responses = sum(responses, na.rm = TRUE))
ggplot(faculty_responses, aes(x = reorder(faculty, total_responses), y = total_responses, fill = faculty)) +
geom_col(show.legend = FALSE) +
geom_text(aes(label = scales::comma(total_responses)), hjust = -0.1, size = 3.5) +
coord_flip() +
labs(
title = "จำนวนผู้ตอบแบบสอบถามการใช้งานห้องสมุดรวมแยกตามคณะ",
x = "คณะ",
y = "จำนวนผู้ตอบแบบสอบถามรวม (คน)"
) +
theme_minimal() +
expand_limits(y = max(faculty_responses$total_responses) * 1.15)
================================================================================================
=======ข้ออื่นก็ประมารเดียวกันครับ แต่ก็จะมีแก้text ข้อความนิดหน่อย
สิ่งที่แก้จากที่ AI ให้มา และทำไมต้องแก้
library(dplyr) library(ggplot2)
faculty_responses <- lib %>% group_by(faculty) %>% summarise(total_responses = sum(responses, na.rm = TRUE))
ggplot(faculty_responses, aes(x = reorder(faculty, total_responses), y = total_responses, fill = faculty)) + geom_col(show.legend = FALSE) + geom_text(aes(label = scales::comma(total_responses)), hjust = -0.1, size = 3.5) + coord_flip() + labs( title = “จำนวนผู้ตอบแบบสอบถามการใช้งานห้องสมุดรวมแยกตามคณะ”, x = “คณะ”, y = “จำนวนผู้ตอบแบบสอบถามรวม (คน)” ) + theme_minimal() + expand_limits(y = max(faculty_responses$total_responses) * 1.15)
====== เดิมที Ai มันคำนวณตามยอดการยืมหนังสือ แต่ผมเปลี่ยนโค้ดให้มันคำนวณ
การตอบแบบสอบถามแทนครับ
—
ถ้า knit ไม่ผ่าน เขียนไว้ตรงนี้ว่าติดตรงไหน