Sankey plot สำหรับงานหลักสูตร

การ Plot แบบ Sankey เพื่อใช้พิจารณาความเชื่อมโยงของข้อมูลในหลักสูตร

1. เปิดใช้งาน package ที่เกี่ยวข้อง

library(highcharter)
Registered S3 method overwritten by 'quantmod':
  method            from
  as.zoo.data.frame zoo 
library(htmlwidgets)
library(dplyr)

Attaching package: 'dplyr'
The following objects are masked from 'package:stats':

    filter, lag
The following objects are masked from 'package:base':

    intersect, setdiff, setequal, union

2. นำเข้าข้อมูล

setwd("G:\\My Drive\\Data analysis\\Alluvail plot")
raw_data<-read.csv("test3.csv",header=TRUE)
raw_data[1:10,]#แสดงข้อมูลแค่ 10 แถวแรก
     sub.ject     year    Sub.PLO PLOs
1  IS 101 103 1st year sub-PLO2.1 PLO2
2  IS 101 103 1st year sub-PLO4.1 PLO4
3  IS 101 103 1st year sub-PLO5.3 PLO5
4  IS 101 104 1st year sub-PLO2.1 PLO2
5  IS 101 104 1st year sub-PLO4.1 PLO4
6  IS 101 104 1st year sub-PLO5.3 PLO5
7  IS 101 201 1st year sub-PLO2.1 PLO2
8  IS 101 201 1st year sub-PLO4.1 PLO4
9  IS 101 201 1st year sub-PLO5.3 PLO5
10 IS 101 202 1st year sub-PLO2.1 PLO2

3. เตรียมข้อมูลตารางให้ได้แบบต่างๆ ตามต้องการ

-ข้อมูลระหว่างรายวิชา กับ Sub-PLOs

subject_to_SubPLOs<-data.frame(raw_data$sub.ject, raw_data$Sub.PLO)
subject_to_SubPLOs[1:10,]#แสดงข้อมูลแค่ 10 แถวแรก
   raw_data.sub.ject raw_data.Sub.PLO
1         IS 101 103       sub-PLO2.1
2         IS 101 103       sub-PLO4.1
3         IS 101 103       sub-PLO5.3
4         IS 101 104       sub-PLO2.1
5         IS 101 104       sub-PLO4.1
6         IS 101 104       sub-PLO5.3
7         IS 101 201       sub-PLO2.1
8         IS 101 201       sub-PLO4.1
9         IS 101 201       sub-PLO5.3
10        IS 101 202       sub-PLO2.1

-ข้อมูลระหว่าง Sub-PLOs กับ ชั้นปี

Sub_PLOs_to_years<-data.frame(raw_data$Sub.PLO, raw_data$year)
Sub_PLOs_to_years[1:10,]#แสดงข้อมูลแค่ 10 แถวแรก
   raw_data.Sub.PLO raw_data.year
1        sub-PLO2.1      1st year
2        sub-PLO4.1      1st year
3        sub-PLO5.3      1st year
4        sub-PLO2.1      1st year
5        sub-PLO4.1      1st year
6        sub-PLO5.3      1st year
7        sub-PLO2.1      1st year
8        sub-PLO4.1      1st year
9        sub-PLO5.3      1st year
10       sub-PLO2.1      1st year

4. Plot แบบ Sankey เพื่อดูความสอดคล้องระหว่างข้อมูลต่างๆ ในหลักสูตร

-ดูว่าแต่ละรายวิชารองรับ Sub-PLOs ใดบ้าง

hchart(data_to_sankey(subject_to_SubPLOs),"sankey",name="subject to Sub-PLOs")

-ดูว่าแต่ละ Sub-PLOs ได้เรียนรู้ในชั้นปีใดบ้าง

hchart(data_to_sankey(Sub_PLOs_to_years),"sankey",name="Sub-PLOs to years")