ให้เรตสมาชิก: 3 / 5

ดาวใช้งานดาวใช้งานดาวใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งาน
 

ประเภทของข้อมูล (data structure) ต่างๆ ในภาษา R

     ในการใช้งานภาษา R เราจำเป็นต้องเข้าใจถึงประเภทข้อมูล หรือ Data structure พื้นฐานของภาษา R กันก่อน ซึ่งก็มีหลายประเภทแต่หลักๆ คือ

  • เวกเตอร์ (Vector) ซึ่งจะเก็บข้อมูลประเภทเดียวกันแบบมีลำดับ
  • ลิสค์ (List) จะเก็บข้อมูลได้มากว่าหนึ่งประเภท
  • ดาต้าเฟรม (Data frame) เก็บข้อมูลลักษณะคล้ายๆ กับตาราง โดยมีแถวและคอลัมน์ ซึ่งสามารถมีข้อมูลมากกว่า 1 ประเภทได้
  • เมทริกซ์ (Metrix) เก็บข้อมูลลักษณะตาราง เหมือนกับ ดาต้าเฟรม แต่ส่วนใหญ่จะเป็นประเภทตัวเลขอย่างเดียว

 

ตัวอย่างการใช้ภาษา R :

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

 

  1. เวกเตอร์ (Vector) เป็นการเก็บข้อมูลประเภทเดียวกันทั้งหมด เช่น ข้อมูลประเภทตัวเลข หรือ Numeric และข้อมูลประเภทข้อความ (Text) เราสามารถสร้างเวกเตอร์ได้ด้วยฟังก์ชั่น c() ซึ่งเป็นการนำข้อมูลต่างๆ มาเชื่อมต่อกัน 
> customer_id <- c("ID15101","ID15102","ID15103","ID15104")
> age <- c(48,50,51,23)
> gender <- c("FEMALE","MALE","FEMALE","FEMALE")
> income <- c(17546.0,30085.1,16575.4,20375.4)

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

> customer_id[2]
[1] "ID15102" // ผลการทำงานจะได้ค่า ID15102 แสดงออกมา

       

       2. ลิสต์ (List) จะแตกต่างจากเวกเตอร์ตรงที่สามารถเก็บข้อมูลหลายประเภทได้ พร้อมกัน ซึ่งเกิดจากการนำเวกเตอร์หลายๆตัวมาต่อกันเป็นลิสต์ การสร้างลิสต์นั้นจะใช้ฟังก์ชั่น list() สำหรับการดูข้อมูลของลูกค้าแต่ละคนด้วยการใช้เวกเตอร์นั้น เราจะต้องระบุชื่อเวกเตอร์และตำแหน่งที่ต้องการ โดยต้องพิมพ์ถึง 4 ครั้งตามจำนวนเวกเตอร์ แต่เราสามารถสร้างเป็นลิสต์แล้วก็เรียกเป็นตัวแปรเดียวได้เลย ดังตัวอย่าง

> john_doe <- list(customer_id = customer_id[1],
                   age = age[1],
                   gender = gender[1],
                   income = income[1])

       หลังจากรันคำสั่งด้านบนแล้วตัวแปร john_doe จะเก็บค่าเวกเตอร์ต่างๆ ส่วนการเรียกใช้งานสามารถทำได้ดังนี้

> john_doe
$customer_id
[1] "ID15101"
 
$age
[1] 48
 
$gender
[1] "FEMALE"
 
$income
[1] 17546

       จากผลที่แสดงออกมา เราจะเห็นว่าชื่อของตัวแปรในลิสต์จะมีเครื่องหมาย $ นำหน้า ถ้าเราต้องการทราบรายได้ (income) ของลูกค้าคนนี้ เราสามารถใช้คำสั่ง ดังต่อไปนี้

> john_doe$income
[1]17546

 

       3. ดาต้า เฟรม (Data frame) เป็นการเก็บข้อมูลให้อยู่ในรูปแบบคล้ายตาราง ซึ่งมีแถว (row) และคอลัมน์ (column) ข้อมูลที่เก็บในดาต้าเฟรมไม่จำเป็นต้องเป็นประเภทเดียวกัน ในการสร้างดาต้าเฟรมจะใช้ฟังก์ชั่น data.frame() ตัวอย่างของการสร้างดาต้าเฟรม ซึ่งเก็บรายละเอียดของลูกค้าทั้งหมด ดังตัวอย่างต่อไปนี้

> customer <- data.frame(customer_id, age, gender, income)

       ถ้าต้องการดูข้อมูลในดาต้า เฟรมทั้งหมดสามารถพิมพ์ชื่อของดาต้า เฟรมได้เลย เช่น

> customer
  customer_id age gender  income
1 ID15101     48  FEMALE  17546.0
2 ID15102     50  MALE    30085.1
3 ID15103     51  FEMALE  16575.4
4 ID15104     23  FEMALE  20375.4

       ถ้าต้องการดูรายละเอียดแค่บางส่วนเราสามารถใช้คำสั่งดังด้านล่างได้เลย เป็นการเลือกดูอายุของลูกค้าคนที่ 1 เท่านั้น

> customer[1,"age"]
[1] 48

      หรือ ถ้าต้องการจะดูทั้งอายุและรายได้ของลูกค้าคนที่ 1 สามารถใช้คำสั่งด้านล่างได้เลย

> customer[1,c("age","income")]
    age income
[1] 48  17546

 

       4. เมทริกซ์ (Matrix) เป็นลักษณะการเก็บข้อมูลคล้ายๆ กับดาต้าเฟรม แต่ข้อมูลจะเป็ฯประเภทเดียวกันและเป็นประเภทตัวเลขเพื่อนำไปใช้ในการคำนวณต่างๆ ในการสร้างเมทริกซ์จะใช้ฟังก์ชั่น matrix() ตัวอย่างของการสร้างเมทริกซ์จะแสดงในตัวอน่างต่อไปนี้

> data <- matrix(c(100,200,300,400,500,600,
                   700,800,900,1000,1100,1200,
                   1300,1400,1500,1600),
                   nrow=4, ncol=4)

       จากคำสั่งด้านบนเป็นการสร้างเมทริกซ์ของตัวเลขที่มีจำนวน 4 แถวและ 4 คอลัมน์ เมื่อเรียกใช้งานจะได้ ผลลัพธ์แสดงในตัวอย่างด้านล่างนี้

> data[1,2]
[1] 500

       และถ้าต้องการดูข้อมูลของแถวในคอลัมน์ (column) สามารถใช้คำสั่ง เช่น data[,1] เพื่อดูข้อมูลในคอลัมน์ที่ 1 ดังตัวอย่างด้านล่างนี้

> data[,1]
[1] 100 200 300 400

       และถ้าต้องการดูข้อมูลในแถว (row) สามารถใช้คำสั่ง เช่น data[1,] เพื่อดูข้อมูลในแถวที่ 1 ดังตัวอย่างด้านล่าง

> data[1,]
[1]  100  500  900 1300

 

 

ข้อมูลอ้างอิง : http://dataminingtrend.com/

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
ความหวังสร้างกำลังใจ ทางออกของคนที่ตรวจพบเจอโรคมะเร็ง
โดย medalezga ศ 07 ส.ค. 2020 6:33 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
8
ศ 07 ส.ค. 2020 6:33 pm โดย medalezga
How do I access my Gmail account through IMAP settings?
โดย Anonymous ศ 07 ส.ค. 2020 5:07 pm บอร์ด Programming - PHP
0
16
ศ 07 ส.ค. 2020 5:07 pm โดย บุคคลทั่วไป
การเขียน Python เชื่อมต่อฐานข้อมูล MSSQL (SQL Server)
โดย jirawoot พฤ 06 ส.ค. 2020 5:42 pm บอร์ด Python Knowledge
0
40
พฤ 06 ส.ค. 2020 5:42 pm โดย jirawoot
ขอสอบถามค่ะ คือกราฟไม่แสดงค่า เมื่อลองรันขึ้น sever จริง แก้ไขยังไงคะ
โดย 2kkkkk พฤ 06 ส.ค. 2020 2:22 am บอร์ด Programming - PHP
1
15
พฤ 06 ส.ค. 2020 2:38 am โดย mindphp
มี Joomla Extension ตัวไหน ทำ Youtube แกลอลี่ ได้บ้าง
โดย Anonymous อ 04 ส.ค. 2020 8:23 pm บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS, CRM
1
26
อ 04 ส.ค. 2020 8:27 pm โดย mindphp
How To Write HTML To Make SEO Freindly Website?
โดย Ridahashmi อ 04 ส.ค. 2020 8:04 pm บอร์ด HTML CSS
0
38
อ 04 ส.ค. 2020 8:04 pm โดย Ridahashmi
ภ.พ.36 คืออะไร
โดย natthanit.r2538 อ 04 ส.ค. 2020 5:54 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
21
อ 04 ส.ค. 2020 5:54 pm โดย natthanit.r2538
อุตสาหกรรมเกษตรน่านแฟร์ 2020
โดย krittaphon อ 04 ส.ค. 2020 10:23 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
21
อ 04 ส.ค. 2020 10:23 am โดย krittaphon
R - AI แยกชาย/หญิง
โดย mindphp ศ 31 ก.ค. 2020 8:08 pm บอร์ด FDD (Main)
0
1
ศ 31 ก.ค. 2020 8:08 pm โดย mindphp
สอบถามเรื่อง cron.task.core เวลาในการตั้งค่า ให้ระบบทำงาน
โดย thatsawan ศ 31 ก.ค. 2020 5:34 pm บอร์ด Programming - PHP
2
61
ศ 31 ก.ค. 2020 6:19 pm โดย thatsawan
ผมไปโหลดโปรเเกรมนึงมาพอผมติดตั้งตามปกติเเต่เหมือนจะเป็นไวรัสผมเลยรีบลบ
โดย Anonymous ศ 31 ก.ค. 2020 12:18 am บอร์ด ถาม - ตอบ คอมพิวเตอร์
1
50
ศ 31 ก.ค. 2020 4:06 am โดย mindphp
ถ้าเราต้องการ timestamp เวลา 0.00 น. เที่ยงคืนของวันปัจจุบัน ทำได้ยังไงค่ะ
โดย thatsawan พ 29 ก.ค. 2020 11:24 am บอร์ด Programming - PHP
4
87
พฤ 30 ก.ค. 2020 5:50 pm โดย anawat2050
[Tip]excel วิธี save as เป็นไฟล์ .csv โดยใช้ | คั่นคอลัมน์แทน ,
โดย jataz2 พ 29 ก.ค. 2020 9:14 am บอร์ด ถาม - ตอบ คอมพิวเตอร์
0
49
พ 29 ก.ค. 2020 9:14 am โดย jataz2
Webboard สำหรับ WP
โดย wichai007 อ 28 ก.ค. 2020 9:01 pm บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS, CRM
0
80
อ 28 ก.ค. 2020 9:01 pm โดย wichai007
ถอด วันที่จาก excel มาได้ผลลัพท์เเต่ละ แถว row ไม่เหมือนกัน
โดย thatsawan อ 28 ก.ค. 2020 8:18 pm บอร์ด Programming - PHP
2
70
อ 28 ก.ค. 2020 8:40 pm โดย mindphp
B - ตัวอย่างคำสั่งที่ไม่เข้าไปใน e-mail [2020-07][002]
โดย natthanit.r2538 ศ 24 ก.ค. 2020 6:28 pm บอร์ด MD-CRM - Tester
2
8
อ 28 ก.ค. 2020 7:12 pm โดย mindphp
สอบถาม มีวิธีเขียน pyhon อ่านไฟล์ .dll มั้ยครับ
โดย jirawoot ศ 24 ก.ค. 2020 2:36 pm บอร์ด Programming - C/C++ & java & Python
0
224
ศ 24 ก.ค. 2020 2:36 pm โดย jirawoot
จะต้องทำยังไงถึงจะสมบรูณ์ GroundOverlay overlay
โดย niran พ 22 ก.ค. 2020 11:19 pm บอร์ด JavaScript & Jquery Ajax
0
255
พ 22 ก.ค. 2020 11:19 pm โดย niran
จะต้องทำยังไงถึงจะสมบรูณ์
โดย Anonymous พ 22 ก.ค. 2020 9:14 pm บอร์ด HTML CSS
2
280
พฤ 23 ก.ค. 2020 8:30 pm โดย บุคคลทั่วไป
สอบถามเกี่ยวกับการรองรับจำนวนผู้ใช้งาน postgresql
โดย Anonymous พ 22 ก.ค. 2020 2:56 pm บอร์ด SQL - Database
1
249
พ 22 ก.ค. 2020 4:45 pm โดย mindphp