R เป็นโปรแกรมคอมพิวเตอร์ที่มีความสามารถสูงในการวิเคราะห์ข้อมูลเชิงสถิติ ในปัจจุบันเป็นที่นิยมในหลายสาขาวิชา เนื่องจากเป็น Open source ที่ทุกคนสามารถนำมาใช้งานโดยไม่มีค่าสใช้จ่ายและไม่ต้อกังวลเรื่องการละเมิดลิขสิทธ์เหมือนโปรแกรมสำเร็จรูปทางสถิติอื่น ๆ
ใช้เครื่องหมายคณิตศาสตร์ +, -, *, / ในการบวก, ลบ, คูณ และหาร และใช้ ^ เป็นเครื่องหมายในการยกกำลัง ตัวอย่างเช่น
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 แบ่งเป็น 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')