install.packages("readxl")
install.packages("openxlsx")
install.packages("ggplot2")
install.packages("tidyverse")
install.packages("multcomp")
install.packages("magick")

Upload the file into the dataframe

library(readxl)
library(ggplot2)
library(tidyverse)
library(multcomp)
library(dplyr)
library(magick)
ICONS
ICONS
data <- read_excel("C:\\Users\\User\\Desktop\\Survey Signup +Icon\\SurveyICON.xlsx")
print(data)

summary(data)
       Id            Icon1           Icon2           Icon3           Icon4      
 Min.   : 1.00   Min.   :1.000   Min.   :1.000   Min.   :1.000   Min.   :1.000  
 1st Qu.:19.25   1st Qu.:1.000   1st Qu.:3.000   1st Qu.:3.000   1st Qu.:2.000  
 Median :37.50   Median :3.000   Median :4.000   Median :5.000   Median :3.000  
 Mean   :37.50   Mean   :2.716   Mean   :3.946   Mean   :4.662   Mean   :3.081  
 3rd Qu.:55.75   3rd Qu.:4.000   3rd Qu.:5.000   3rd Qu.:6.000   3rd Qu.:4.000  
 Max.   :74.00   Max.   :6.000   Max.   :6.000   Max.   :7.000   Max.   :7.000  
     Icon5           Icon6      
 Min.   :1.000   Min.   :1.000  
 1st Qu.:2.000   1st Qu.:2.000  
 Median :3.000   Median :4.000  
 Mean   :3.338   Mean   :4.122  
 3rd Qu.:4.750   3rd Qu.:6.000  
 Max.   :7.000   Max.   :7.000  
# เปลี่ยนรูปแบบจาก wide เป็น narrow
data2 <- data %>%
  pivot_longer(cols = starts_with("Icon"),
               names_to = "variable",      
               values_to = "value") %>%
  mutate(variable = as.factor(variable))
# print(data2)

#คำนวณ mean & SD เพื่อนำไปใช้ในการสร้าง Error Bar
summary_data <- data2 %>%
  group_by(variable) %>%
  summarize(
    mean_value = mean(value),
    se = sd(value) / sqrt(n()))

print(summary_data)
NA
#สร้างกราฟแท่งจาก Mean ของแต่ละไอคอน พร้อมใส่ Error Bar

ggplot(summary_data, aes(x = variable, y = mean_value)) +
  geom_bar(stat = "identity", fill = "orange", width = 0.6) +
  geom_errorbar(aes(ymin = mean_value - se*1.96, ymax = mean_value + se*1.96), width = 0.2) +
  geom_text(aes(label = round(mean_value, 2), y = mean_value), vjust = -0.5, , hjust = -0.3, size = 3, color = "blue") +
  labs(title = "กราฟแสดงผลความพึงพอใจของแต่ละรูปแบบไอคอน", x = "รูปแบบไอคอน", y = "ระดับความพึงพอใจ")


# การสร้างกราฟ(เป็นBoxplot)
ggplot(data2, aes(x = variable, y = value)) +
  geom_boxplot() +
  labs(title = "การแจกแจงคะแนนของแต่ละไอคอน",
       x = "รูปแบบไอคอน",
       y = "ค่าความพึงพอใจ")
# การวิเคราะห์ ANOVA เพื่อดูผลภาพรวมความต่างว่ามีนัยสำคัญหรือไม่
 anova_result <- aov(value ~ variable , data = data2)
 summary(anova_result)
             Df Sum Sq Mean Sq F value   Pr(>F)    
variable      5  194.4   38.88   12.89 1.04e-11 ***
Residuals   438 1321.4    3.02                     
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
 

จากผลการวิเคราะห์ด้านบนสรุปได้ว่าค่า P Value< 0.05 จึงสรุปได้ว่าระดับความพึงพอใจของไอคอนเหล่านั้นมีความแตกต่างกันอย่างมีนัยสำคัญ

#แล้วมาเปรียบเทียบทีละคู่ว่าต่างกันอย่างมีนัยสำคัญหรือไม่
posthoc_result <- glht(anova_result, linfct = mcp(variable = "Tukey"))
 summary(posthoc_result)

     Simultaneous Tests for General Linear Hypotheses

Multiple Comparisons of Means: Tukey Contrasts


Fit: aov(formula = value ~ variable, data = data2)

Linear Hypotheses:
                   Estimate Std. Error t value Pr(>|t|)    
Icon2 - Icon1 == 0   1.2297     0.2855   4.307  < 0.001 ***
Icon3 - Icon1 == 0   1.9459     0.2855   6.815  < 0.001 ***
Icon4 - Icon1 == 0   0.3649     0.2855   1.278  0.79708    
Icon5 - Icon1 == 0   0.6216     0.2855   2.177  0.25052    
Icon6 - Icon1 == 0   1.4054     0.2855   4.922  < 0.001 ***
Icon3 - Icon2 == 0   0.7162     0.2855   2.508  0.12373    
Icon4 - Icon2 == 0  -0.8649     0.2855  -3.029  0.03102 *  
Icon5 - Icon2 == 0  -0.6081     0.2855  -2.130  0.27399    
Icon6 - Icon2 == 0   0.1757     0.2855   0.615  0.98991    
Icon4 - Icon3 == 0  -1.5811     0.2855  -5.537  < 0.001 ***
Icon5 - Icon3 == 0  -1.3243     0.2855  -4.638  < 0.001 ***
Icon6 - Icon3 == 0  -0.5405     0.2855  -1.893  0.40784    
Icon5 - Icon4 == 0   0.2568     0.2855   0.899  0.94659    
Icon6 - Icon4 == 0   1.0405     0.2855   3.644  0.00399 ** 
Icon6 - Icon5 == 0   0.7838     0.2855   2.745  0.06868 .  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Adjusted p values reported -- single-step method)

เมื่อนำแต่ละไอคอนมาเปรียบเทียบกัน จากผลการวิเคราะห์ด้านบนสรุปได้ว่า Icon2, Icon3, Icon6 ไม่มีความต่างกันอย่างมีนัยยะสำคัญ แต่ Icon3 และ Icon6 มีผลความพึงพอใจที่ได้ใกล้เคียงกันมากที่สุด และเมื่อวิเคราะห์จากรูปแบบของการออกแบบ พบว่าไอคอนที่สื่อความหมายควรมีขีดทับตรงกลางเพื่อสื่อถึงปัญหาหรือสิ่งขัดข้อง และควรมีรูปสายไฟฟ้าและรูปหลอดไฟ ทางผู้วิจัยจึงนำข้อมูลเหล่านี้มาใช้เพื่อพัฒนาเป็นไอคอนแบบใหม่ที่มีส่วนประกอบที่สำคัญดังกล่าวเพื่อให้สื่อความหมายของ “พื้นที่ไฟฟ้าดับ/ขัดข้อง” มากที่สุด

Outage Area Icon
Outage Area Icon
LS0tDQp0aXRsZTogIklDT04gU3VydmV5IFJlcG9ydCINCnN1YnRpdGxlOiBJbnRocmFwb3JuIChKb29wKSBBcmFueWFuYWssIFBoRA0Kb3V0cHV0Og0KICBodG1sX25vdGVib29rOiBkZWZhdWx0DQogIHBkZl9kb2N1bWVudDogZGVmYXVsdA0KLS0tDQpgYGB7cn0NCmluc3RhbGwucGFja2FnZXMoInJlYWR4bCIpDQppbnN0YWxsLnBhY2thZ2VzKCJvcGVueGxzeCIpDQppbnN0YWxsLnBhY2thZ2VzKCJnZ3Bsb3QyIikNCmluc3RhbGwucGFja2FnZXMoInRpZHl2ZXJzZSIpDQppbnN0YWxsLnBhY2thZ2VzKCJtdWx0Y29tcCIpDQppbnN0YWxsLnBhY2thZ2VzKCJtYWdpY2siKQ0KYGBgDQoNClVwbG9hZCB0aGUgZmlsZSBpbnRvIHRoZSBkYXRhZnJhbWUNCmBgYHtyfQ0KbGlicmFyeShyZWFkeGwpDQpsaWJyYXJ5KGdncGxvdDIpDQpsaWJyYXJ5KHRpZHl2ZXJzZSkNCmxpYnJhcnkobXVsdGNvbXApDQpsaWJyYXJ5KGRwbHlyKQ0KbGlicmFyeShtYWdpY2spDQpgYGANCiFbSUNPTlNdKC9Vc2Vyc1xVc2VyXERlc2t0b3BcU3VydmV5IFNpZ251cCArSWNvblxJY29uVGVzdC5wbmcpDQoNCmBgYHtyfQ0KZGF0YSA8LSByZWFkX2V4Y2VsKCJDOlxcVXNlcnNcXFVzZXJcXERlc2t0b3BcXFN1cnZleSBTaWdudXAgK0ljb25cXFN1cnZleUlDT04ueGxzeCIpDQpwcmludChkYXRhKQ0KDQpzdW1tYXJ5KGRhdGEpDQoNCmBgYA0KYGBge3J9DQojIOC5gOC4m+C4peC4teC5iOC4ouC4meC4o+C4ueC4m+C5geC4muC4muC4iOC4suC4gSB3aWRlIOC5gOC4m+C5h+C4mSBuYXJyb3cNCmRhdGEyIDwtIGRhdGEgJT4lDQogIHBpdm90X2xvbmdlcihjb2xzID0gc3RhcnRzX3dpdGgoIkljb24iKSwNCiAgICAgICAgICAgICAgIG5hbWVzX3RvID0gInZhcmlhYmxlIiwgICAgICANCiAgICAgICAgICAgICAgIHZhbHVlc190byA9ICJ2YWx1ZSIpICU+JQ0KICBtdXRhdGUodmFyaWFibGUgPSBhcy5mYWN0b3IodmFyaWFibGUpKQ0KIyBwcmludChkYXRhMikNCg0KI+C4hOC4s+C4meC4p+C4kyBtZWFuICYgU0Qg4LmA4Lie4Li34LmI4Lit4LiZ4Liz4LmE4Lib4LmD4LiK4LmJ4LmD4LiZ4LiB4Liy4Lij4Liq4Lij4LmJ4Liy4LiHIEVycm9yIEJhcg0Kc3VtbWFyeV9kYXRhIDwtIGRhdGEyICU+JQ0KICBncm91cF9ieSh2YXJpYWJsZSkgJT4lDQogIHN1bW1hcml6ZSgNCiAgICBtZWFuX3ZhbHVlID0gbWVhbih2YWx1ZSksDQogICAgc2UgPSBzZCh2YWx1ZSkgLyBzcXJ0KG4oKSkpDQoNCnByaW50KHN1bW1hcnlfZGF0YSkNCg0KYGBgDQoNCmBgYHtyfQ0KI+C4quC4o+C5ieC4suC4h+C4geC4o+C4suC4n+C5geC4l+C5iOC4h+C4iOC4suC4gSBNZWFuIOC4guC4reC4h+C5geC4leC5iOC4peC4sOC5hOC4reC4hOC4reC4mSDguJ7guKPguYnguK3guKHguYPguKrguYggRXJyb3IgQmFyDQoNCmdncGxvdChzdW1tYXJ5X2RhdGEsIGFlcyh4ID0gdmFyaWFibGUsIHkgPSBtZWFuX3ZhbHVlKSkgKw0KICBnZW9tX2JhcihzdGF0ID0gImlkZW50aXR5IiwgZmlsbCA9ICJvcmFuZ2UiLCB3aWR0aCA9IDAuNikgKw0KICBnZW9tX2Vycm9yYmFyKGFlcyh5bWluID0gbWVhbl92YWx1ZSAtIHNlKjEuOTYsIHltYXggPSBtZWFuX3ZhbHVlICsgc2UqMS45NiksIHdpZHRoID0gMC4yKSArDQogIGdlb21fdGV4dChhZXMobGFiZWwgPSByb3VuZChtZWFuX3ZhbHVlLCAyKSwgeSA9IG1lYW5fdmFsdWUpLCB2anVzdCA9IC0wLjUsICwgaGp1c3QgPSAtMC4zLCBzaXplID0gMywgY29sb3IgPSAiYmx1ZSIpICsNCiAgbGFicyh0aXRsZSA9ICLguIHguKPguLLguJ/guYHguKrguJTguIfguJzguKXguITguKfguLLguKHguJ7guLbguIfguJ7guK3guYPguIjguILguK3guIfguYHguJXguYjguKXguLDguKPguLnguJvguYHguJrguJrguYTguK3guITguK3guJkiLCB4ID0gIuC4o+C4ueC4m+C5geC4muC4muC5hOC4reC4hOC4reC4mSIsIHkgPSAi4Lij4Liw4LiU4Lix4Lia4LiE4Lin4Liy4Lih4Lie4Li24LiH4Lie4Lit4LmD4LiIIikNCmBgYA0KDQpgYGB7cn0NCg0KIyDguIHguLLguKPguKrguKPguYnguLLguIfguIHguKPguLLguJ8o4LmA4Lib4LmH4LiZQm94cGxvdCkNCmdncGxvdChkYXRhMiwgYWVzKHggPSB2YXJpYWJsZSwgeSA9IHZhbHVlKSkgKw0KICBnZW9tX2JveHBsb3QoKSArDQogIGxhYnModGl0bGUgPSAi4LiB4Liy4Lij4LmB4LiI4LiB4LmB4LiI4LiH4LiE4Liw4LmB4LiZ4LiZ4LiC4Lit4LiH4LmB4LiV4LmI4Lil4Liw4LmE4Lit4LiE4Lit4LiZIiwNCiAgICAgICB4ID0gIuC4o+C4ueC4m+C5geC4muC4muC5hOC4reC4hOC4reC4mSIsDQogICAgICAgeSA9ICLguITguYjguLLguITguKfguLLguKHguJ7guLbguIfguJ7guK3guYPguIgiKQ0KDQpgYGANCmBgYHtyfQ0KIyDguIHguLLguKPguKfguLTguYDguITguKPguLLguLDguKvguYwgQU5PVkEg4LmA4Lie4Li34LmI4Lit4LiU4Li54Lic4Lil4Lig4Liy4Lie4Lij4Lin4Lih4LiE4Lin4Liy4Lih4LiV4LmI4Liy4LiH4Lin4LmI4Liy4Lih4Li14LiZ4Lix4Lii4Liq4Liz4LiE4Lix4LiN4Lir4Lij4Li34Lit4LmE4Lih4LmIDQogYW5vdmFfcmVzdWx0IDwtIGFvdih2YWx1ZSB+IHZhcmlhYmxlICwgZGF0YSA9IGRhdGEyKQ0KIHN1bW1hcnkoYW5vdmFfcmVzdWx0KQ0KIA0KYGBgDQo+PiDguIjguLLguIHguJzguKXguIHguLLguKPguKfguLTguYDguITguKPguLLguLDguKvguYzguJTguYnguLLguJnguJrguJnguKrguKPguLjguJvguYTguJTguYnguKfguYjguLLguITguYjguLIgUCBWYWx1ZTwgMC4wNSDguIjguLbguIfguKrguKPguLjguJvguYTguJTguYnguKfguYjguLLguKPguLDguJTguLHguJrguITguKfguLLguKHguJ7guLbguIfguJ7guK3guYPguIjguILguK3guIfguYTguK3guITguK3guJnguYDguKvguKXguYjguLLguJnguLHguYnguJnguKHguLXguITguKfguLLguKHguYHguJXguIHguJXguYjguLLguIfguIHguLHguJnguK3guKLguYjguLLguIfguKHguLXguJnguLHguKLguKrguLPguITguLHguI0NCg0KYGBge3J9DQoj4LmB4Lil4LmJ4Lin4Lih4Liy4LmA4Lib4Lij4Li14Lii4Lia4LmA4LiX4Li14Lii4Lia4LiX4Li14Lil4Liw4LiE4Li54LmI4Lin4LmI4Liy4LiV4LmI4Liy4LiH4LiB4Lix4LiZ4Lit4Lii4LmI4Liy4LiH4Lih4Li14LiZ4Lix4Lii4Liq4Liz4LiE4Lix4LiN4Lir4Lij4Li34Lit4LmE4Lih4LmIDQpwb3N0aG9jX3Jlc3VsdCA8LSBnbGh0KGFub3ZhX3Jlc3VsdCwgbGluZmN0ID0gbWNwKHZhcmlhYmxlID0gIlR1a2V5IikpDQogc3VtbWFyeShwb3N0aG9jX3Jlc3VsdCkNCmBgYA0KPj4g4LmA4Lih4Li34LmI4Lit4LiZ4Liz4LmB4LiV4LmI4Lil4Liw4LmE4Lit4LiE4Lit4LiZ4Lih4Liy4LmA4Lib4Lij4Li14Lii4Lia4LmA4LiX4Li14Lii4Lia4LiB4Lix4LiZIOC4iOC4suC4geC4nOC4peC4geC4suC4o+C4p+C4tOC5gOC4hOC4o+C4suC4sOC4q+C5jOC4lOC5ieC4suC4meC4muC4meC4quC4o+C4uOC4m+C5hOC4lOC5ieC4p+C5iOC4siBJY29uMiwgSWNvbjMsIEljb242IOC5hOC4oeC5iOC4oeC4teC4hOC4p+C4suC4oeC4leC5iOC4suC4h+C4geC4seC4meC4reC4ouC5iOC4suC4h+C4oeC4teC4meC4seC4ouC4ouC4sOC4quC4s+C4hOC4seC4jSDguYHguJXguYggSWNvbjMg4LmB4Lil4LiwIEljb242IOC4oeC4teC4nOC4peC4hOC4p+C4suC4oeC4nuC4tuC4h+C4nuC4reC5g+C4iOC4l+C4teC5iOC5hOC4lOC5ieC5g+C4geC4peC5ieC5gOC4hOC4teC4ouC4h+C4geC4seC4meC4oeC4suC4geC4l+C4teC5iOC4quC4uOC4lCDguYHguKXguLDguYDguKHguLfguYjguK3guKfguLTguYDguITguKPguLLguLDguKvguYzguIjguLLguIHguKPguLnguJvguYHguJrguJrguILguK3guIfguIHguLLguKPguK3guK3guIHguYHguJrguJog4Lie4Lia4Lin4LmI4Liy4LmE4Lit4LiE4Lit4LiZ4LiX4Li14LmI4Liq4Li34LmI4Lit4LiE4Lin4Liy4Lih4Lir4Lih4Liy4Lii4LiE4Lin4Lij4Lih4Li14LiC4Li14LiU4LiX4Lix4Lia4LiV4Lij4LiH4LiB4Lil4Liy4LiH4LmA4Lie4Li34LmI4Lit4Liq4Li34LmI4Lit4LiW4Li24LiH4Lib4Lix4LiN4Lir4Liy4Lir4Lij4Li34Lit4Liq4Li04LmI4LiH4LiC4Lix4LiU4LiC4LmJ4Lit4LiHIOC5geC4peC4sOC4hOC4p+C4o+C4oeC4teC4o+C4ueC4m+C4quC4suC4ouC5hOC4n+C4n+C5ieC4suC5geC4peC4sOC4o+C4ueC4m+C4q+C4peC4reC4lOC5hOC4nyDguJfguLLguIfguJzguLnguYnguKfguLTguIjguLHguKLguIjguLbguIfguJnguLPguILguYnguK3guKHguLnguKXguYDguKvguKXguYjguLLguJnguLXguYnguKHguLLguYPguIrguYnguYDguJ7guLfguYjguK3guJ7guLHguJLguJnguLLguYDguJvguYfguJnguYTguK3guITguK3guJnguYHguJrguJrguYPguKvguKHguYjguJfguLXguYjguKHguLXguKrguYjguKfguJnguJvguKPguLDguIHguK3guJrguJfguLXguYjguKrguLPguITguLHguI3guJTguLHguIfguIHguKXguYjguLLguKfguYDguJ7guLfguYjguK3guYPguKvguYnguKrguLfguYjguK3guITguKfguLLguKHguKvguKHguLLguKLguILguK3guIcgIuC4nuC4t+C5ieC4meC4l+C4teC5iOC5hOC4n+C4n+C5ieC4suC4lOC4seC4mi/guILguLHguJTguILguYnguK3guIciIOC4oeC4suC4geC4l+C4teC5iOC4quC4uOC4lA0KDQoNCiFbT3V0YWdlIEFyZWEgSWNvbl0oL1VzZXJzXFVzZXJcRGVza3RvcFxTdXJ2ZXkgU2lnbnVwICtJY29uXElDT04xXE91dGFnZUFyZWEuanBnKQ==