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
df_clean <- drop_na(lib)
faculty_summary <- df_clean %>%
group_by(faculty) %>%
summarise(
total_borrows = sum(borrows),
avg_monthly_borrows = mean(borrows),
students = mean(students),
borrows_per_student = round(total_borrows / students, 2)
) %>%
arrange(desc(total_borrows)) %>%
mutate(
highlight = case_when(
total_borrows == max(total_borrows) ~ "มากที่สุด",
total_borrows == min(total_borrows) ~ "น้อยที่สุด",
TRUE ~ "อื่น ๆ"
)
)
ggplot(
faculty_summary,
aes(
x = reorder(faculty, total_borrows),
y = total_borrows,
fill = highlight
)
) +
geom_col() +
geom_text(
aes(label = scales::comma(total_borrows)),
hjust = -0.1,
size = 4
) +
coord_flip() +
scale_fill_manual(
values = c(
"มากที่สุด" = "#2B6CB0",
"น้อยที่สุด" = "#E76F51",
"อื่น ๆ" = "gray75"
)
) +
labs(
title = "ปี 2568 คณะวิทยาศาสตร์มีจำนวนการยืมหนังสือรวมสูงที่สุด 7393 ครั้ง",
subtitle = "เปรียบเทียบจำนวนการยืมหนังสือรวมของแต่ละคณะ",
x = "คณะ",
y = "จำนวนการยืมรวม (ครั้ง)",
fill = NULL
) +
theme_minimal() +
theme(panel.grid = element_blank(),
legend.position = "right",
plot.title = element_text(
face = "bold",
size = 16
)
)
คำตอบ (3–4 บรรทัด — “มากที่สุด” ของคุณนับจากอะไร และทำไมเลือกนับแบบนั้น)
คณะที่มีการเข้าใช้ห้องสมุดมากที่สุดคือคณะวิทยาศาสตร์ซึ่งนับจากจำนวนครั้งในการยืมหนังสือรวมของคณะต่างๆพบว่าคณะวิทยาศาสตร์มีการยืมอยู่ 7393 >
month_order <- c("ม.ค.", "ก.พ.", "มี.ค.", "เม.ย.", "พ.ค.", "มิ.ย.",
"ก.ค.", "ส.ค.", "ก.ย.", "ต.ค.", "พ.ย.", "ธ.ค.")
monthly_summary <- df_clean %>%
group_by(month) %>%
summarise(total_borrows = sum(borrows, na.rm = TRUE)) %>%
mutate(month = factor(month, levels = month_order)) %>%
arrange(month)
ggplot(monthly_summary, aes(x = month, y = total_borrows, group = 1)) +
geom_col(fill = "#87CEFA", width = 0.6, alpha = 0.85) +
geom_line(color = "#e74c3c", size = 1.2) +
geom_point(color = "#e74c3c", size = 3) +
geom_text(aes(label = scales::comma(total_borrows)), vjust = -0.7, size = 3.5, fontface = "bold") +
scale_y_continuous(limits = c(0, 4500), labels = scales::comma) +
labs(
title = "เดือน ก.ย การยืมหนังสือของนิสิตทั้งมหาลัยสูงถึง 3790 ครั้ง",
subtitle = "เปรียบเทียบแนวโน้มการเข้าใช้ห้องสมุดรายเดือนของของนิสิตจากจำนวนครั้งในการยืมหนังสือนตลอดทั้งปี",
x = "เดือน",
y = "จำนวนการยืมรวม (ครั้ง)"
) +
theme_minimal(base_family = "sans") +
theme(
plot.title = element_text(size = 16, face = "bold", hjust = 0.5),
plot.subtitle = element_text(size = 11, hjust = 0.5, color = "gray30"),
axis.text = element_text(size = 10, color = "black"),
axis.title = element_text(size = 11, face = "bold"),
panel.grid.minor = element_blank()
)
คำตอบ (2 บรรทัด — แนะนำเดือนไหน เพราะอะไร) เดือนที่ควรมีการส่งเสริมการอ่านคือเดือน มิ.ย และเดือน ก.ค เนื่องจากมียอดการยืมหนังสือต่ำที่สุดและอาจจะเป็นช่วงที่พึ่งเปิดเทอมจึงทำให้ยอดการยืมต่ำลง >
df_clean <- df_clean %>%
mutate(id = row_number())
sd <- SharedData$new(
df_clean,
key = ~id
)
g1 <- ggplot(
sd,
aes(
x = month,
y = borrows,
group = faculty,
text = paste0(
"คณะ: ", faculty,
"<br>เดือน: ", month,
"<br>จำนวนการยืม: ", borrows, " ครั้ง"
)
)
) +
geom_line(
aes(group = faculty),
colour = "#2b5c8f",
linewidth = 1
) +
geom_point(
colour = "#2b5c8f",
size = 2.5
) +
labs(
title = "จำนวนการยืมหนังสือของแต่ละคณะในแต่ละเดือน",
subtitle = "เลือกคณะด้านล่างเพื่อดูข้อมูลเฉพาะคณะที่สนใจ",
x = "เดือน",
y = "จำนวนการยืม (ครั้ง)"
) +
theme_minimal(base_size = 11)
g2 <- ggplot(
sd,
aes(
x = satisfaction,
y = borrows,
text = paste0(
"คณะ: ", faculty,
"<br>เดือน: ", month,
"<br>ความพึงพอใจ: ", satisfaction,
"<br>จำนวนการยืม: ", borrows, " ครั้ง"
)
)
) +
geom_point(
colour = "#4C5C96",
alpha = 0.65,
size = 2.8
) +
labs(
title = "ความพึงพอใจกับจำนวนการยืมหนังสือ",
subtitle = "เปรียบเทียบคะแนนความพึงพอใจกับจำนวนการยืมในแต่ละเดือน",
x = "คะแนนความพึงพอใจ",
y = "จำนวนการยืม (ครั้ง)"
) +
theme_minimal(base_size = 11)
bscols(
ggplotly(
g1,
tooltip = "text",
height = 350
) %>%
highlight(
on = "plotly_selected",
off = "plotly_doubleclick"
),
ggplotly(
g2,
tooltip = "text",
height = 350
) %>%
highlight(
on = "plotly_selected",
off = "plotly_doubleclick"
)
)
sd2 <- SharedData$new(
df_clean,
key = ~id)
bscols(widths = c(3, 9),filter_checkbox(
"faculty_filter",
"เลือกคณะ",
sd2,
~faculty
), datatable(
sd2,
rownames = FALSE,
colnames = c(
"คณะ",
"เดือน",
"จำนวนการยืม",
"จำนวนนักศึกษา",
"ความพึงพอใจ",
"จำนวนผู้ตอบ",
"ID"
),
options = list(
pageLength = 8,
scrollX = TRUE
)
)
)
ตัวเลข 4.7 ถูกไหม
ข้อสรุปนี้มีปัญหาอะไร (พร้อมตัวเลขยืนยัน)
prompt ที่ใช้ (คัดลอกมาเต็ม ๆ อย่างน้อย 1 อัน)
สิ่งที่แก้จากที่ AI ให้มา และทำไมต้องแก้
ถ้า knit ไม่ผ่าน เขียนไว้ตรงนี้ว่าติดตรงไหน