Does cat actually sleep?
ข้อมูลที่เราได้จาก database หรือการเก็บมาเองจะมีลำดับของมาตรส่วน หรือที่เรียกว่า Level of Measurements
ใน R เราจะรู้จัก level
เหล่านี้ได้ในอีกรูปแบบต่างออกไปคือ Qualitative = Factor
ซึ่งส่วนใหญ่นักวิจัยหรือนักวิเคราะห์จะ key
(ใส่ข้อมูลในโปรแกรม) ข้อมูลเหล่านี้เป็นตัวอักษร หรือ charactor
และ Quantitative = Numeric
ซึ่งเป็นเป็นตัวเลขที่มีทศนิยมหรือไม่มีก็ได้
หากย้อนกลับไปตอนเราสร้าง vector
vector1 <- c(1, 2, 3, 4, 5, 6)
vector2 <- c(0, 1, 2, 3, 4, 5)
vector3 <- c("a", "b", "c", "d", "e")
vector4 <- c(1.3, 1.2, 1.4, 1.5, 1.1)
แล้วเราเรียกชนิดและ class ของ vector นั้นๆ ขึ้นมา จะพบผลดังนี้
typeof(vector1)
## [1] "double"
typeof(vector3)
## [1] "character"
typeof(vector4)
## [1] "double"
class(vector1)
## [1] "numeric"
class(vector3)
## [1] "character"
class(vector4)
## [1] "numeric"
จะเห็นได้ว่า เมื่อใช้คำสั่ง typeof()
และ class()
ข้อมูลที่เป็นตัวเลขจะแสดงผลเป็น double (เลขที่ไม่มีจุดทศนิยม)
และ numeric
ในขณะที่ ข้อมูลที่เป็นตัวอักษรจะแสดงผลออกมาเป็น
character
เพราะฉะนั้น การคีย์ข้อมูลใน R จะมี 2 ลักษณะคือเมื่อไหร่ก็ตามที่เราคีย์เป็นตัวเลข R จะจัดให้เป็น numeric และถ้าเราคีย์เป็นตัวอักษร R โดยการใส่เครื่องหมายคำพูด (quotation)
"____"
จะจัดให้เป็น character หากต้องการเปลี่ยนลักษณะของข้อมูลจะสามารถทำได้หลาย (มากๆ) วิธีด้วยกัน เราชอบใช้ as.________
ที่สุด (ง่ายดี)
Demo
นี้เราจะใช้ dataset
ชื่อว่า coronavirus
ที่มาจาก Package
ชื่อว่า coronavirus
เนื่องจากว่า R มีนักพัฒนาใจดีทั่วโลกร่วมกันเขียน package ออกมาหลากหลาย การเรียก package ออกมาเราจะต้องทำการติดตั้ง package นั้นเสียก่อน โดยใช้ คำสั่ง install.packages("_____")
ต้องมีเครื่องหมาย Quatation ด้วยนะ และเรียก package นั้นออกมาด้วยคำสั่ง library()
เนื่องจากว่า เรามีตัวแปรที่เป็นกลุ่ม (เช่น เพศ ลำดับในองค์กร พื้นที่) และข้อมูลต่อเนื่อง (เช่น มาตรวัด น้ำหนัก อายุ ส่วนสูง) เราจึงต้องจัดชนิดของข้อมูลใน R ให้เหมาะสมด้วยการเขียนคำสั่ง เช่น
#install.packages("coronavirus")
library(coronavirus)
head(coronavirus)
## date province country lat long type cases uid iso2 iso3
## 1 2020-01-22 Alberta Canada 53.9333 -116.5765 confirmed 0 12401 CA CAN
## 2 2020-01-23 Alberta Canada 53.9333 -116.5765 confirmed 0 12401 CA CAN
## 3 2020-01-24 Alberta Canada 53.9333 -116.5765 confirmed 0 12401 CA CAN
## 4 2020-01-25 Alberta Canada 53.9333 -116.5765 confirmed 0 12401 CA CAN
## 5 2020-01-26 Alberta Canada 53.9333 -116.5765 confirmed 0 12401 CA CAN
## 6 2020-01-27 Alberta Canada 53.9333 -116.5765 confirmed 0 12401 CA CAN
## code3 combined_key population continent_name continent_code
## 1 124 Alberta, Canada 4413146 North America NA
## 2 124 Alberta, Canada 4413146 North America NA
## 3 124 Alberta, Canada 4413146 North America NA
## 4 124 Alberta, Canada 4413146 North America NA
## 5 124 Alberta, Canada 4413146 North America NA
## 6 124 Alberta, Canada 4413146 North America NA
typeof(coronavirus)
## [1] "list"
class(coronavirus)
## [1] "data.frame"
dataset
นี้มีลักษณะเป็น list
ซ้อนกันอยู่ โดยมีข้อมูลเป็น data.frame
ใน dataset
นี้ มีตัวแปรแบบกลุ่มที่เห็นได้ชัดคือ country
และ province
ในขณะที่ตัวแปรแบบต่อเนื่องคือ จำนวน case
population
(ที่เหลือเดี๋ยวสนุกแล้วกลับมาเล่นได้นะ)
เราจะเรียกใช้เพียง country, province, case, population เท่านั้น วิธีการด้านล่างจะเรียกว่าวิธีการ subset
ซึ่งจะมีการพูดถึงในส่วนถัดไป
Data <- coronavirus[c("date", "province", "country", "cases", "population")]
head(Data, 3)
การที่เราจะดูลักษณะ (structure) ของข้อมูลในแต่ละ column เราสามารถเรียกคำสั่ง str()
ออกมาให้เราดูโดยรวมได้
str(Data)
## 'data.frame': 518682 obs. of 5 variables:
## $ date : Date, format: "2020-01-22" "2020-01-23" ...
## $ province : chr "Alberta" "Alberta" "Alberta" "Alberta" ...
## $ country : chr "Canada" "Canada" "Canada" "Canada" ...
## $ cases : int 0 0 0 0 0 0 0 0 0 0 ...
## $ population: num 4413146 4413146 4413146 4413146 4413146 ...
จะเห็นได้ว่า ข้อมูลที่เรา subset
มาแล้วมีจำนวน observation = 518682
และมีตัวแปร 5
ตัว คือ date (Date)
, province (chr)
, country (chr)
, cases (int)
, population (num)
ถ้าเราอยากเปลี่ยนชนิดของตัวแปร เช่น เปลี่ยน province ให้เป็น factor เราสามารถทำได้โดยการ เรียกชื่อ file
และ ใช้ $
(เรียกว่า dolla sign) และชื่อ column
ที่มีตัวแปรนั้นอยู่ เช่น as.factor(data$columnx)
เมื่อแปลงเป็น factor
เรียบร้อยแล้ว เราสามารถเรียกดูชนิดได้โดยใช้คำสั่ง is.factor()
factor
Data$province <- as.factor(Data$province)
is.factor(Data$province)
ถ้าเราต้องการเปลี่ยนเป็นชนิดอื่น ๆ ก็ใช้คำสั่ง as.____()
R จะมี dropdown
ลงมาให้ว่ามีตัวเลือกอะไรให้บ้าง เช่น as.numeric()