Skip to main content Link Search Menu Expand Document (external link)

Commands and Functions

ในบทนี้เราจะมาเรียนเรื่อง commands และ functions ที่ใช้บ่อยในการเขียนภาษา R กันนะคะ

Commands

command คือ คำสั่งพื้นฐานที่เราใช้ใน R เช่น

+ - * / <- == , $

(บวก ลบ คูณ หาร ใส่ค่า เท่ากับ คำสั่งต่อไป เรียกออกมาจาก)

Command พวกนี้เราจะใช้บ่อยมาก เพื่อบอก R ว่าเราต้องการทำอะไร

Functions

ฟังชั่น หรือชุดคำสั่ง คือ คำสั่งที่มี () ต่อท้าย ภายในคำสั่งนี้จะมีสิ่งที่เรียกว่า function หรือ command ซ่อนอยู่ และสามารถเรียกดูได้ด้วยคำสั่ง help() หรือ ?ตามด้วยชื่อ function` เช่น

sqrt(9)
## [1] 3
help(sqrt)
?sqrt()

help จะปรากฎใน Tab Tools (ซึ่งปกติจะอยู่ด้านขวาล่างของ Rstudio) Functions เหล่านี้ช่วยให้นักวิเคราะห์ไม่จำเป็นต้องเขียนสมการยาก ๆ เช่น square root ด้วยตัวเอง

Functions ที่ใช้ง่ายบ่อยในการวิเคราะห์ข้อมูล

Functions ที่ใช้งานบ่อยในการเรียกดูข้อมูล หาค่าเฉลี่ย หาค่าสัมบูรณ์ต่าง ๆ

#ในการเรียกค่าข้อมูล
View() #spreadsheet ของชุดข้อมูล
head() # 6 บันทัดแรกของข้อมูล
tail() # 6 บันทัดท้ายของข้อมูล
summary() # ดูค่าโดยรวมของชุดข้อมูล
table() #ดูจำนวนข้อมูลในคอลลัมภ์นั้นๆ
length() #ดูจำนวนความยาวของแถวนั้นๆ


#ในการหาค่ามาตรฐานพื้นฐาน
mean() #ค่าเฉลี่ย
median() #ค่ากลาง
sum() #ผลรวม
abs() #ค่าสัมบูรณ์ absolute
round() #เรียกผลลัพธ์ที่ออกมาเป็นค่าจุดทศนิยมกี่ตำแหน่ง
aggregate() #เรียกผลลัพธ์รายกลุ่ม

#ในการสร้างกราฟและอื่น ๆ
rnorm() #สร้างชุดข้อมูลที่มี density เป็นโค้งปกติ
dnorm()
qnorm() #สร้างชุดข้อมูลจาก qualtile
plot() #สร้างกราฟ


#ในการจัดการ levels of measurement ของข้อมูล
factor() #เปลี่ยนตัวแปรนี้เป็นแบบจัดกลุ่ม
numeric() #เปลี่ยนตัวแปรนี้เป็นแบบตัวเลข
data.frame() #เปลี่ยนชุดตัวแปรนี้ให้เป็น dataframe
colnames() #เปลี่ยนชื่อคอลลัมภ์ทั้งหมดในชุดข้อมูล
rownames() #เปลี่ยนชื่อ row ทั้งหมดในชุดข้อมูล * สำคัญสำหรับ data ที่นำมาจาก spss หรือ .csv ที่มีจำนวนแถวไม่เรียงกัน อาจเพราะมีการตัดเคสเกิดขึ้น
is.factor() #ดูว่าข้อมูลเป็น factor หรือยัง
is.numeric() #ดูว่าข้อมูลเป็น numeric หรือยัง
is.na() #ดูว่าชุดข้อมูลมี NA หรือ Missing Data ไหม
which(__, arr.ind = TRUE) #ดูว่าสิ่งที่เราต้องการหาอยู่ในแถวที่เท่าไหร่ คอลลัมภ์ไหน
is.completecase() #ถามว่าทั้งชุดข้อมูลเป็น complete case หรือไม่
labels() #ใส่ชื่อให้กับตัวแปรในชุดข้อมูล

#note คำสั่งชุดนี้จะต่างจากการเปลี่ยนชุดข้อมูลที่มีคำว่า as.___ไม่ค่อยมากนัก แต่ส่วนใหญ่การใช้ as.__ จะเป็นการเปลี่ยนประเภทเพียงอย่างเดียว
as.factor() #เปลี่ยนชุดข้อมูลนี้เป็น factor
as.numeric() #เปลี่ยนชุดข้อมูลนี้เป็น numeric
as.data.frame() #เปลี่ยนชุดข้อมูลนี้เป็น data.frame

ถ้ามีเพิ่มจะรีบมาเขียนให้นะคะ

นอกจากนี้แล้วเรายังสามารถเขียน functions ด้วยตัวเองง่าย ๆ เช่น
    aggregate(y ~ x1 + x2, data = data, 
                          FUN = function(x) c(M=mean(x), SD = sd(x), Q = quantile(x, probs = c(0.25, 0.75)), I = IQR(x)))

การเรียก aggregate() นี้จะให้ผลลัพธ์ตามที่เราเขียนใน FUN และยังมีการเขียน for loop หรือ if-else ที่อาจจะเป็นการเรียนเขียนภาษา R ขั้นสูงหน่อย แต่ว่าไม่ยากค่ะ ถ้าเข้าใจ logic ใน R program ค่าาา


Happy Coding

Sirinapa~