โปรแกรม R เบื้องต้น

R เป็นโปรแกรมคอมพิวเตอร์ที่มีความสามารถสูงในการวิเคราะห์ข้อมูลเชิงสถิติ ในปัจจุบันเป็นที่นิยมในหลายสาขาวิชา เนื่องจากเป็น Open source ที่ทุกคนสามารถนำมาใช้งานโดยไม่มีค่าสใช้จ่ายและไม่ต้อกังวลเรื่องการละเมิดลิขสิทธ์เหมือนโปรแกรมสำเร็จรูปทางสถิติอื่น ๆ

การใช้ R เป็นเครื่องคิดเลข

ใช้เครื่องหมายคณิตศาสตร์ +, -, *, / ในการบวก, ลบ, คูณ และหาร และใช้ ^ เป็นเครื่องหมายในการยกกำลัง ตัวอย่างเช่น

1+1
## [1] 2
10-5
## [1] 5
5*2
## [1] 10
100/10
## [1] 10
5^2
## [1] 25
x=2
x+3
## [1] 5
x^3
## [1] 8

ชนิดและรูปแบบของข้อมูลใน R

ข้อมูลในโปรแกรม R แบ่งเป็น 3 ประเภท ได้แก่

Numeric เป็นข้อมูลที่มีค่าเป็นตัวเลข หรือในทางสถิติเรียกข้อมูลชนิดนี้ว่าข้อมูลเชิงปริมาณ (Quantitative data) เช่น อายุ รายได้ และคะแนนสอบ เป็นต้น ซึ่งข้อมูลชนิดนี้สามารถนํามาคำนวณหาค่าทางสถิติต่าง ๆ เช่น ค่าเฉลี่ย ค่าเบี่ยงเบนมาตรฐาน

age<- c(5,10,15,20)
mean(age)
## [1] 12.5
sd(age)
## [1] 6.454972

Character เป็นข้อมูลที่ค่าของมันไม่ใช่ตัวเลข โดยปรกติมักเป็นข้อความ หรือตัวอักษร ในทางสถิติเรียกข้อมูล ชนิดนี้ว่าข้อมูลเชิงคุณภาพ (Qualitative data) เช่น เพศ (ชาย, หญิง) ระดับการศึกษา (มัธยมศึกษา, ปริญญาตรี, ปริญญาโท) เป็นต้น ข้อมูลชนิดนี้ไม่สามารถนํามาคำนวณเพื่อหาค่าทางสถิติได้ แต่มีวิธีเชิง สถิติบางวิธีที่สามารถใช้ในการวิเคราะห์เพื่อหาคำตอบที่ผู้วิจัยต้องการจากข้อมูลชนิดนี้ได้ ซึ่งโดยทั่วไป จะใช้วิธีกลุ่มของสถิติไม่อิงพารามิเตอร์ (Nonparametric statistics)

sex<- c("boy","girl","girl","boy")
table(sex)
## sex
##  boy girl 
##    2    2

Logical เป็นข้อมูลเชิงตรรกที่มีค่าอยู่สองค่าเท่านั้น คือ TRUE แทนค่าจริง และ FALSE แทนค่าที่เป็นเท็จ

x = 10
x>12
## [1] FALSE
x<100
## [1] TRUE

การจัดการข้อมูล

Download ตัวอย่างข้อมูล

iris เป็นตัวอย่างข้อมูลประกอบด้วยผลการวัดความยาว (Length) และความกว้าง(Width) ของกลีบเลี้ยง (sepal) และกลีบดอก (petal) จากดอกไม้ทั้งหมด 150 ดอก จาก 3 สายพันธุ์ (species)

data("iris")

แสดง 6 แถวแรกของข้อมูล

head(iris)
##   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1          5.1         3.5          1.4         0.2  setosa
## 2          4.9         3.0          1.4         0.2  setosa
## 3          4.7         3.2          1.3         0.2  setosa
## 4          4.6         3.1          1.5         0.2  setosa
## 5          5.0         3.6          1.4         0.2  setosa
## 6          5.4         3.9          1.7         0.4  setosa

เรียกดูการสรุปข้อมูลโดยใช้ summary()

สำหรับข้อมูลที่เป็นตัวเลข เราสามารถใช้คำสั่งต่อไปนี้เพื่อเรียกดูข้อมูล - Min: ค่าน้อยสุด - Median: ค่ามัธยฐาน - Mean: ค่าเฉลี่ย - Max: ค่ามากสุด

สำหรับข้อมูลที่เป็นตัวแปรจัดกลุ่ม (categorical variable) เราใช้การนับจำนวน setosa: มีข้อมูล 50 แถว versicolor: มีข้อมูล 50 แถว virginica: มีข้อมูล 50 แถว

summary(iris)
##   Sepal.Length    Sepal.Width     Petal.Length    Petal.Width   
##  Min.   :4.300   Min.   :2.000   Min.   :1.000   Min.   :0.100  
##  1st Qu.:5.100   1st Qu.:2.800   1st Qu.:1.600   1st Qu.:0.300  
##  Median :5.800   Median :3.000   Median :4.350   Median :1.300  
##  Mean   :5.843   Mean   :3.057   Mean   :3.758   Mean   :1.199  
##  3rd Qu.:6.400   3rd Qu.:3.300   3rd Qu.:5.100   3rd Qu.:1.800  
##  Max.   :7.900   Max.   :4.400   Max.   :6.900   Max.   :2.500  
##        Species  
##  setosa    :50  
##  versicolor:50  
##  virginica :50  
##                 
##                 
## 

เรียกดูจำนวนแถว (row) และคอลัมม์ (column)

dim(iris)
## [1] 150   5

##การแสดงข้อมูล (Visualization)

ใช้ hist() ในการสร้างแผนภูมิ Histrogram

hist(iris$Sepal.Length,
     col='steelblue',
     main='Histogram',
     xlab='Length',
     ylab='Frequency')

ใช้ plot() ในการสร้าง scatterplot ของการจับคู่ตัวแปรที่เป็น ตัวเลข (numerical variable)

plot(iris$Sepal.Width, iris$Sepal.Length,
     col='steelblue',
     main='Scatterplot',
     xlab='Sepal Width',
     ylab='Sepal Length',
     pch=19)

ใช้ boxplot() สร้าง boxplot จำแนกตามกลุ่ม

boxplot(Sepal.Length~Species,
        data=iris,
        main='Sepal Length by Species',
        xlab='Species',
        ylab='Sepal Length',
        col='steelblue',
        border='black')