นโยบายการจัดการความรู้ มหาวิทยาลัยสงขลานครินทร์ 1.ให้ใช้เครื่องมือการจัดการความรู้ผลักดัน คุณภาพคน และกระบวนทำงาน 2.ส่งเสริมการแลกเปลี่ยนประสบการณ์การทำงาน จากหน้างาน 3.ส่งเสริมให้มีเวทีเรียนรู้ร่วมกัน

Our Shangri-La
Ico64
Kittisakdi Choomalee

ภาควิชาเวชศาสตร์ชุมชน คณะแพทยศาสตร์ มหาวิทยาลัยสงขลานครินทร์
Network
Members · Following: 0 · Followed: 16

อ่าน: 2013
ความเห็น: 0

ก้าวย่าง ทางเดิน ลืมเลือนคืนวัน ดั้นด้นไป: KML vs R ยกที่ ๔

เรื่องราวของ R

เริ่มยกที่ ๔ ณ บัดนี้ครับ

๒ ทุ่ม ๕ นาที (๒๒๐๓๒๕๕๕) ผมสุ่มไปโรงช้าง พบว่าร้านรวงปิดทำการเกือบทั้งหมดแล้ว เหลือร้านด้านหน้าอยู่ ๒ ร้านที่ยังขาย ส่วนด้านหลังฝั่งคณะวิทยาการจัดการนั้นเหลืออยู่ร้านเดียว กับอีก ๒ ร้านด้านฝั่งที่จอดรถหลังตึกกิจกรรมฯ

ที่จอดรถมอเตอร์ไซด์ด้านข้างตึกกิจกรรมฯ มีที่ให้เลือกจอดตามสบาย ประมาณว่ามีรถจอดอยู่ประมาณ ๒ ใน ๓ ของพื้นที่ทั้งหมด

อากาศอบๆ นิดๆ หลังจากที่ฝนห่าใหญ่ตกลงมาก่อนเลิกงาน ชายผู้หนึ่งนักสูบบุหรี่พ่นควันโขมงในซุ้มที่นั่งอย่างสบายอารมณ์

มาเข้าเรื่องกันต่อนะครับ

หลังจากที่ผมให้ท่านผู้อ่านที่รักเปรียบเทียบผลลัพธ์จากการใช้คำสั่งแสดงค่าหรือสิ่งที่บรรจุอยู่ภายในวัตถุ test1 (ซึ่งมี class เป็น list)

คำสั่งแรกคือ

test1

ผลลัพธ์ที่ได้คือ

[[1]]
     [,1]      [,2]      [,3]      [,4]      [,5]      [,6]      [,7]      [,8]      [,9]      [,10]     [,11]     [,12]     [,13]     [,14]     [,15]   
[1,] Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3

ข้อมูลถูกลบ

      [,61]     [,62]     [,63]     [,64]     [,65]     [,66]     [,67]     [,68]     [,69]
[1,] Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,0 NA  

[[2]]
     [,1]      [,2]      [,3]      [,4]      [,5]      [,6]      [,7]      [,8]      [,9]      [,10]     [,11]     [,12]     [,13]     [,14]     [,15]   
[1,] Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3

ข้อมูลถูกลบ

      [,91]     [,92]     [,93]     [,94]     [,95]     [,96]     [,97]     [,98]     [,99]     [,100]    [,101]    [,102]    [,103]    [,104]    [,105]    [,106]
[1,] Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,0 NA  

คำสั่งที่ ๒ คือ

test1[[1]]

ผลลัพธ์ที่ได้คือ

     [,1]      [,2]      [,3]      [,4]      [,5]      [,6]      [,7]      [,8]      [,9]      [,10]     [,11]     [,12]     [,13]     [,14]     [,15]   
[1,] Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3

ข้อมูลถูกลบ

    [,61]     [,62]     [,63]     [,64]     [,65]     [,66]     [,67]     [,68]     [,69]
[1,] Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,0 NA  

คราวนี้ลองอีกคำสั่งนะครับ

test1[1]


ผลลัพธืที่ได้คือ

[[1]]
     [,1]      [,2]      [,3]      [,4]      [,5]      [,6]      [,7]      [,8]      [,9]      [,10]     [,11]     [,12]     [,13]     [,14]     [,15]   
[1,] Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3

ข้อมูลถูกลบ

    [,61]     [,62]     [,63]     [,64]     [,65]     [,66]     [,67]     [,68]     [,69]
[1,] Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,0 NA  

ท่านผู้อ่านพอจะแยกความแตกต่างกันได้หรือยังครับ

ผมให้ท่านผู้อ่านที่รักลองเปรียบเทียบผลลัพธ์จากคำสั่งต่างๆดูนะครับ อาจจะมีหลายคำสั่งสักนิด แต่จะทำให้เข้าใจข้อมูลได้ดีขึ้น ซึ่งจะนำไปสู่การจัดการข้อมูลต่อไปครับ

test1[[1]][]
     [,1]      [,2]      [,3]      [,4]      [,5]      [,6]      [,7]      [,8]      [,9]      [,10]     [,11]     [,12]     [,13]     [,14]     [,15]   
[1,] Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3

ข้อมูลถูกลบ

     [,61]     [,62]     [,63]     [,64]     [,65]     [,66]     [,67]     [,68]     [,69]
[1,] Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,0 NA

test1[[1]][1]
[[1]]

[1] 100.07497  15.23082   0.00000

test1[[1]][1,1]
[[1]]

[1] 100.07497  15.23082   0.00000

test1[[1]][1,2]
[[1]]

[1] 100.06355  15.22436   0.00000

test1[[1]][1,3]
[[1]]
[1] 100.05911  15.21749   0.00000

 test1[[1]][1]
[[1]]
[1] 100.07497  15.23082   0.00000

test1[[1]][2]
[[1]]
[1] 100.06355  15.22436   0.00000

test1[[1]][3]
[[1]]
[1] 100.05911  15.21749   0.00000

 test1[[1]][1,]
[[1]]
[1] 100.07497  15.23082   0.00000

[[2]]
[1] 100.06355  15.22436   0.00000

[[3]]
[1] 100.05911  15.21749   0.00000

ข้อมูลถูกลบ

[[67]]
[1] 100.01962  13.37173   0.00000

[[68]]
numeric(0)

[[69]]
[1] NA

test1[[1]][,1]
[[1]]
[1] 100.07497  15.23082   0.00000

test1[[1]][,2]
[[1]]
[1] 100.06355  15.22436   0.00000

test1[[2]]
     [,1]      [,2]      [,3]      [,4]      [,5]      [,6]      [,7]      [,8]      [,9]      [,10]     [,11]     [,12]     [,13]     [,14]     [,15]   
[1,] Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3

ข้อมูลถูกลบ

    [,91]     [,92]     [,93]     [,94]     [,95]     [,96]     [,97]     [,98]     [,99]     [,100]    [,101]    [,102]    [,103]    [,104]    [,105]    [,106]
[1,] Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,3 Numeric,0 NA   

test1[[2]][1]
[[1]]
[1] 100.10046  15.33168   0.00000

test1[[2]][2]
[[1]]
[1] 100.11460  15.32613   0.00000

test1[[2]][10]
[[1]]
[1] 100.18572  15.28263   0.00000

test1[[2]][1:20]
[[1]]
[1] 100.10046  15.33168   0.00000

[[2]]
[1] 100.11460  15.32613   0.00000

ข้อมูลถูกลบ

[[20]]
[1] 100.4153  15.1355   0.0000

 

* ข้อมูลถูกลบ หมายถึงผมได้ลบข้อมูลการแสดงผลทิ้งไปส่วนหนึ่ง

อย่าเพิ่งงงกันนะครับ

ท่านผู้อ่านที่รักคงจำกันได้นะครับว่าการอ้างอิงตำแหน่งในวัตถุต่างๆ ใน R นั้นจะใช้เครื่องหมาย [ ] ในการระบุตำแหน่งในวัตถุ คำสั่งข้างต้นทั้งหมดจะเป็นการเรียกข้อมูลในตำแหน่งต่างๆ ในวัตถุ test1 ที่มี class เป็น list

ผมให้ดูชุดคำสั่งอีก ๑ ชุดนะครับ

class(test1[[1]])
[1] "matrix"
class(test1[[1]][1])
[1] "list"
class(test1[[1]][])
[1] "matrix"
class(test1[[1]][[1]])
[1] "numeric"
class(test1[[1]][1,2])
[1] "list"
class(test1[[1]][[1,2]])
[1] "numeric"
class(test1[[1]][1,])
[1] "list"

เราจะเห็นว่าเมื่อเราสอบถามถึง class ของข้อมูลที่อยู่ในตำแหน่งต่างๆ ในวัตถุ test1 โปรแกรม R แจ้งให้ทราบว่า ข้อมูลที่เราระบุตำแหน่งไปนั้นจำแนกได้ ๓ class ด้วยกันคือ matrix list และ numeric

numeric ก็คือเวคเตอร์ตัวเลข (numeric vector) นั่นเอง หรือชุดของข้อมูล (ตัวเลข) หลายๆ ค่าที่เรียงต่อกันเป็นชุด เช่น 1 2 3 4 5 6 หรือ 10.2 15.1 18 21 22 25.4 31 45 เป็นต้น

หรือข้อมูลที่เป็นเวคเตอร์ตัวเลขจะเรียงต่อกันเป็นแถวเดียวหรือเป็นข้อมูลเพียงมิติเดียว

ผมยกตัวอย่างให้เห็นภาพง่ายๆ นะครับ

ให้วัตถุชื่อ a ประกอบไปด้วยตัวเลข ๖ ตัวเรียงต่อกันคือ 7 5 6 1 4 และ 8

a <- c(7, 5, 6, 1, 4, 8)

ให้แสดงค่าต่างๆ ที่อยู่ภายในวัตถุ a
a
[1] 7 5 6 1 4 8

วัตถุ a มี class เป็น

class(a)
[1] "numeric"

ค่า(ตัวเลข)ลำดับที่ ๓ ในวัตถุ a คือค่า?

a[3]
[1] 6

ค่า (ตัวเลข) ลำดับที่ ๒ และ ๓ ในวัตถุ a คือค่า?

a[2:3]
[1] 5 6

ให้วัตถุ b มีค่า ๒ ค่า ค่าแรกเป็นค่าในตำแหน่งที่ ๒ ของวัตถุ a และค่าที่ ๒ คือค่าในตำแหน่งที่ ๕ ของวัตถุ a

b <- c(a[2], a[5])

แสดงค่าที่อยู่ภายในวัตถุ b

b
[1] 5 4

แต่หากเราใช้คำสั่ง

a[1,5]
Error in a[1, 5] : incorrect number of dimensions

โปรแกรมจะแสดงข้อความผิดพลาดว่าไม่มีมิติที่ระบุ

คำสั่งที่ให้แสดงค่าในตำแหน่งต่างๆ ของวัตถุ test1 และให้ผลลัพธ์ของคำสั่งออกมาเป็น numeric คือคำสั่ง

test1[[1]][[1]] และ test1[[1]][[1,2]]

ผลลัพธ์ของทั้ง ๒ คำสั่งคือ

[1] 100.07497  15.23082   0.00000

และ

[1] 100.06355  15.22436   0.00000

จะเห็นว่าผลลัพธ์ที่ได้ออกมาเป็นตัวเลข ๓ ตัว (ค่า) เรียงกันหรือเป็น numeric vector นั่นเอง

พบกันให่บันทึกหน้าครับ

เราเอง 

หมวดหมู่บันทึก: บริการวิชาการ
คำสำคัญ (keywords): r  R maptools  ข้าวยำ  เฉาก๊วย  KML coordinates import
สัญญาอนุญาต: ซีซี: แสดงที่มา-ไม่ใช้เพื่อการค้า-อนุญาตแบบเดียวกัน Cc-by-nc-sa
สร้าง: 24 มีนาคม 2555 00:18 แก้ไข: 24 มีนาคม 2555 00:18 [ แจ้งไม่เหมาะสม ]
ดอกไม้
สมาชิกที่ให้กำลังใจ: Ico24 ServiceMan, Ico24 คนธรรมดา, และ Ico24 โอ๋-อโณ.
สมาชิกที่ให้กำลังใจ
 
Facebook
Twitter
Google

บันทึกอื่นๆ

ความเห็น

ไม่มีความเห็น

ร่วมแสดงความเห็นในหน้านี้

ชื่อ:
อีเมล:
IP แอดเดรส: 34.204.176.189
ข้อความ:  
เรียกเครื่องมือจัดการข้อความ
   
ยกเลิก หรือ