protect
ถ้าเอาบทความไปเผยแพร่แล้วไม่ให้เครดิต ดำเนินคดีด้วย พรบ. คอมพิวเตอร์ฉบับใหม่ ขั้นสูงสุดและไม่ยอมความครับ
วันอังคารที่ 14 มิถุนายน พ.ศ. 2559
Data Type ของ R
ก่อนอื่นออกตัวก่อนเลยนะครับ บทความนี้เขียนเพื่อตัวเอง เนื่องจากตอนนี้กำลังศึกษาเรื่อง R และ data structure ของ R เป็นเรื่องพื้นฐานที่สำคัญ ดังนั้นผมจึงทำสรุปเกี่ยวกับ data structure ของ R ไว้เพื่อที่ผมจะอ้างถึงในอนาคต
ใน R command มีกฏอยู่ 2 ข้อคือ
1) ทุกๆ อย่างที่อยู่ใน R command เป็น object
2) ทุกๆ อย่างที่เกิดขึ้นใน R command เกิดขึ้นจากการเรียกใช้ function.
โดยใน R command จะแบ่ง Type ออกได้เป็น 6 ชนิด (6 atomic class) ได้แก่
1 character - เป็น type ชนิด string หรือตัวหนังสือ ตัวอย่างดังรูปข้างล่างครับ
คำสั่ง typeof เป็นคำสั่งที่ดูว่า type ที่ R กำลังใช้อยู่เป็น type ชนิดไหน
2 numeric หรือ double - เป็น type ชนิดตัวเลขทั่วๆ ไป สามารถเป็นได้ทั้งแบบมีทศนิยมและไม่มีทศนิยม type นี้จะเป็นชนิด double ลองดูตัวอย่าง ดังรูปข้างล่างครับ
ถ้าอยากรู้รายละเอียดของ numeric สามารถใช้คำสั่ง help(numeric) ที่ R command ได้เลยครับ
3 integer - เป็น type ชนิดตัวเลข โดยปกติ default type ของตัวเลขจะเป็น numeric ถ้าเราต้องการให้ type เป็น ชนิด integer ก็แค่ใส่ L ตามไปข้างหลัง ลองดูตัวอย่างตามรูปข้างล่างได้เลยครับ
สิ่งหนึ่งที่สำคัญคือจำนวน maximum และ minimum ของ numeric กับ integer จะขึ้นอยู่กับชนิดของ CPU ว่าเป็น 32 bit หรือ 64 bit เราสามารถดู limit ของ type ได้ด้วยคำสั่ง .Machine (มี dot หรือจุด นำหน้า Machine) ลองดูตัวอย่างข้างล่างน่ะครับ
4 logical - เป็น type ชนิด boolean คือมีแค่สองค่าคือ TRUE กับ FALSE ลองดูตัวอย่างวิธีใช้ข้างล่างครับ
ข้อสังเกตุน่ะครับ true กับ TRUE ให้ผลไม่เหมือนกันน่ะครับ R ไม่รู้จัก true ครับ
5 complex - เป็น type ชนิด ซับซ้อนจะอยู่ในรูปแบบของสมการ ลองดูตัวอย่างข้างล่างครับ
ในตัวอย่างผมเอา sqrt หรือ square root จะเห็นว่า ถ้า sqrt(-1) ค่าที่ return มาจะเป็น null แต่ ก็ยังเป็น double อยู่ดี ในขนาดที่ sqrt ของ complex จะได้ type ที่เป็น complex ด้วย
6 raw - ขอติดไว้ก่อนน่ะครับเดียวจะอธิบายอีกทีบทความหน้า เพราะต้องเข้าใจ Data structure ของ R ก่อน
บทความหน้าผมจะอธิบายในเรื่อง Data Structure ของ R พบกันใหม่ครับ
TuChay
วันจันทร์ที่ 30 พฤษภาคม พ.ศ. 2559
When I'm falling in love with BigData.
I had heard about BigData couple year ago. First time I heard about it, I was not quite sure what was the difference with database system. It looked very similar. Until last year, I started to take a look on BigData and went to the detail. Oh I found a lot of opportunity to improve the query data system and "data prediction".
Look back to 20 years ago, when I was a junior programmer. My job made software to create data summary report. I still remember, I needed to run my software more than a week to finish one summary report. That took time too long. I had talked to my older friend who is working on IT department for big company in Thailand. He explained to me, he has a lot of new technology to improve data query system to make more easier and faster for report (he mentioned on BI and quick view) but he still needs long time to finish the report, specially yearly report.
I am thinking, will it be better if he will create new BigData System (not replace with database) and copy the data transaction from database to Hadoop, then write the MapReduce software to generate the report. If you know how is Hadoop cluster system doing, you will understand how can be more faster. My friend mention to create new system is not easy because he needs to think about cost, time and maintain. I agreed on this but we need to trade off the benefit, how much money have to pay, how much time have gain. The Hadoop system does not require high performance. I tested with CubieTruck (ARM7 CPU), it works very well (base on not much big data :) )
One thing that I still do not understand, why the user (human) still be a person who generate the report. Why don't they have "a software bot" to auto collect data transaction, once time for create report was triggered. Just let the software bot does by itself, then send the final report to user automatic. This is a routine job that need to do everyday or every month or every year. The software bot should able to do it, no more user action. Do you think so?
A lot of more idea I can imagine what the BigData can do, like billing system, stock system. But I am interesting "data prediction" from BigData. Specially if you know machine learning, statistic or Six Sigma. You can predict data in the future from the history data. Look interest??
TuChay
Look back to 20 years ago, when I was a junior programmer. My job made software to create data summary report. I still remember, I needed to run my software more than a week to finish one summary report. That took time too long. I had talked to my older friend who is working on IT department for big company in Thailand. He explained to me, he has a lot of new technology to improve data query system to make more easier and faster for report (he mentioned on BI and quick view) but he still needs long time to finish the report, specially yearly report.
I am thinking, will it be better if he will create new BigData System (not replace with database) and copy the data transaction from database to Hadoop, then write the MapReduce software to generate the report. If you know how is Hadoop cluster system doing, you will understand how can be more faster. My friend mention to create new system is not easy because he needs to think about cost, time and maintain. I agreed on this but we need to trade off the benefit, how much money have to pay, how much time have gain. The Hadoop system does not require high performance. I tested with CubieTruck (ARM7 CPU), it works very well (base on not much big data :) )
One thing that I still do not understand, why the user (human) still be a person who generate the report. Why don't they have "a software bot" to auto collect data transaction, once time for create report was triggered. Just let the software bot does by itself, then send the final report to user automatic. This is a routine job that need to do everyday or every month or every year. The software bot should able to do it, no more user action. Do you think so?
A lot of more idea I can imagine what the BigData can do, like billing system, stock system. But I am interesting "data prediction" from BigData. Specially if you know machine learning, statistic or Six Sigma. You can predict data in the future from the history data. Look interest??
TuChay
สมัครสมาชิก:
บทความ (Atom)