26
4 2 5 1 3 0011 0010 1010 1101 0001 0100 1011 กกกกกกกกกกกกกกกกกกกกกกกกกกกกกกก R (Data Analysis Using R Programming Language) By ดด. ดดดดดดด ดดดดดดดดดด ดดดดดดดดดดดดดดดดดดดดดดดดดด ดดดดดดดดดดดดดดดดดดดดดดดดด ดดดดดดดดดดดดดดดดดดดดดดดดดด ดดดดดดดดดดดดดดดดดดดดดดดดด [email protected] Sunday, March 8, 2015

R programming language 2/57 teaching on March 8, 2015

Embed Size (px)

Citation preview

Page 1: R programming language 2/57 teaching on March 8, 2015

4251 3

0011 0010 1010 1101 0001 0100 1011

การวิ�เคราะห์ข้�อมู�ลโดยใช้�โปรแกรมู R (Data Analysis Using R Programming

Language)By

ดร. เสาวณิ�ต ร�ตนรวมการ สาขาว�ชาคณิ�ตศาสตร�และสถิ�ต�ภาคว�ชาว�ทยาศาสตร�พื้��นฐาน

คณิะว�ทยาศาสตร�และเทคโนโลย มหาว�ทยาล�ยราชภ�ฏส#ร�นทร�

[email protected], March 8, 2015

Page 2: R programming language 2/57 teaching on March 8, 2015

4251 3

0011 0010 1010 1101 0001 0100 1011

Outline• Introduction to R• Source แหล$ง download R• ส$วนประกอบของ R• การอ$านค$าข)อม*ลเข)ามาในโปรแกรม R• ร*ปแบบการเก,บข)อม*ลใน R และ แป-นล�ดท.าให)ไม$ต)อง

พื้�มพื้�ซ้ำ.�าบ$อยๆ• function เบ��องต)น เช$น การส�2งเร ยกใช)ข)อม*ล• Matrix, Inverse Matrix, Determinant• eigen value, eigen vector• แบบฝึ4กห�ด

Page 3: R programming language 2/57 teaching on March 8, 2015

4251 3

0011 0010 1010 1101 0001 0100 1011

Introduction to R• โปรแกรมภาษาท 2น�ยมใช)ก�นเป6นอย$างมากในทางสถิ�ต�

ภาษาหน72ง • ดาวน�โหลดได)ฟร ภายใต)การด*แลขององค�กรท 2ไม$

แสวงหาก.าไร ช�2อ R Foundation • open source • R พื้�ฒนาข7�นคร��งแรกเม�2อป: ค.ศ. 1990s โดย Robert

Gentleman และ Ross Ihaka มหาว�ทยาล�ยโอคแลนด� ประเทศน�วซ้ำ แลนด�

# เป6นไปได)ท 2โปรแกรม R จะมาจากช�2อของ Robert และ Ross

• โปรแกรมภาษา R เป6นส$วนท 2ม การพื้�ฒนามาจากโปรแกรมภาษา S

Page 4: R programming language 2/57 teaching on March 8, 2015

4251 3

0011 0010 1010 1101 0001 0100 1011

R You Ready for R?

Statistics Adjunct professor Robert Gentleman who helped developed the R programming language. (Credit: Stuart Isett for The New York Times)

Page 5: R programming language 2/57 teaching on March 8, 2015

4251 3

0011 0010 1010 1101 0001 0100 1011

Page 6: R programming language 2/57 teaching on March 8, 2015

4251 3

0011 0010 1010 1101 0001 0100 1011

source

• ดาวน�โลดได)ฟร จาก http://cran.r-project.org/

• เล�อก Download R ร# $นท 2ท�นสม�ยท 2ส#ด • ค�อ R-3.1.2.tar.gz

(52 megabytes, 32/64 bit)• ค*$ม�อการใช)งานเบ��องต)นhttp://cran.r-project.org/doc/manuals/r-

release/R-intro.html

Page 7: R programming language 2/57 teaching on March 8, 2015

4251 3

0011 0010 1010 1101 0001 0100 1011

Download R 3.1.2 for Windows Double click ท 2น 2

Page 8: R programming language 2/57 teaching on March 8, 2015

4251 3

0011 0010 1010 1101 0001 0100 1011

Page 9: R programming language 2/57 teaching on March 8, 2015

4251 3

0011 0010 1010 1101 0001 0100 1011

ส$วนประกอบของ R• R Gui ประกอบด)วย 2 ว�นโดส�ย$อยค�อ

–R Console ใช)ในการเข ยนค.าส�2งและแสดงผลล�พื้ธ์�

–R graph แสดงกราฟต$างๆ

Page 10: R programming language 2/57 teaching on March 8, 2015

4251 3

0011 0010 1010 1101 0001 0100 1011

Page 11: R programming language 2/57 teaching on March 8, 2015

4251 3

0011 0010 1010 1101 0001 0100 1011

How to read data? การอ�านค�าข้�อมู�ลเข้�ามูาในโปรแกรมู R

การอ�านค�าข้�อมู�ลโดยใช้�ค�าสั่��ง read-table (Using read-table to read files)

อ$านจาก external HD ต�วอย$างเช$น>test<- read.table("g:/drug.dat",header=T)

>test<- read.table("g:/grades.txt",header=T)

การอ$านค$าข)อม*ลช#ดgrades.txt แล)วน.าไปเก,บไว)ในfileช�2อtest ถิ)าfileเด�มม ช�2อต�วแปรให)อ$านเข)ามาด)วย

Page 12: R programming language 2/57 teaching on March 8, 2015

4251 3

0011 0010 1010 1101 0001 0100 1011

ชน�ดของข)อม*ลท 2ใช)ในโปรแกรม R• Numeric เป6นต�วเลข สามารถิน.ามาค.านวณิ

ได)• Character เป6นข)อม*ลท 2เป6นต�วอ�กษรคล)าย

ก�บค$า string ในโปรแกรม SPSS• Logical เป6นข)อม*ลท 2ม ค$าเป6นจร�งหร�อเท,จ โดย

R จะให)ส�ญล�กษณิ� T หร�อ True แทน ข)อม*ลท 2ม ค$าเป6นจร�ง และ F หร�อ False แทนข)อม*ลท 2ม ค$าเป6นเท,จ

Page 13: R programming language 2/57 teaching on March 8, 2015

4251 3

0011 0010 1010 1101 0001 0100 1011

ร*ปแบบการเก,บข)อม*ลใน R• Vector ข)อม*ล• Matrices• Arrays (arrays ซ้ำ72งเป6น matrices เฉพื้าะ เป6นท 2เก,บรวมเคร�2องม�อ–

กลางขนาดใหญ$เพื้�2อการว�เคราะห�ข)อม*ล - ภาพื้ส.าหร�บการว�เคราะห�ข)อม*ลจะแสดงผลโดยตรงในคอมพื้�วเตอร�หร�อใน hard copy

• - เป6นภาษาพื้�ฒนาได)ง$ายและม ประส�ทธ์�ภาพื้ )

• data frame

หมายเหต# ในโปรแกรม R ต�วอ�กษรใหญ$และเล,กม ความหมายแตกต$างก�น

น�2นค�อ A จะแตกต$างจาก a

เราสามารสร)างช#ดข)อม*ลได)อย$างน)อย 26*2 ต�วอ�กษรภาษาอ�งกฤษ

Page 14: R programming language 2/57 teaching on March 8, 2015

4251 3

0011 0010 1010 1101 0001 0100 1011

แป-นล�ดท.าให)ไม$ต)องพื้�มพื้�ซ้ำ.�าบ$อยๆ

Page 15: R programming language 2/57 teaching on March 8, 2015

4251 3

0011 0010 1010 1101 0001 0100 1011

function เบ��องต)น• help(“mean”)• ?mean• attributes()• ls() # list object ว$าม การเก,บช#ดข)อม*ลอะไร

บ)างในworkspace• q() #quitจากโปรแกรม R โดย R จะถิามว$า

ต)องการsave งานหร�อไม$เคร�2องหมาย # เป6นการเข ยนโน)ตให)เราท.าความเข)าใจได)ง$าย เวลามาอ$านท หล�ง R จะไม$อ$านข)อความหล�ง ”#”

Page 16: R programming language 2/57 teaching on March 8, 2015

4251 3

0011 0010 1010 1101 0001 0100 1011

การส�2งเร ยกใช)ข)อม*ล• attach(ช�2อช#ดข)อม*ล) # การระบ#ช�2อช#ดข)อม*ลท 2จะ

ใช)• x$mean #เป6นการเร ยกผลล�พื้ธ์�ของข)อม*ลช#ดx

ต�วแปรmean มาแสดง• การให)ค$าต�วแปร ใช)เคร�2องหมาย “<-” หร�อ “=“

ต�วอย$างเช$น> x<-c(4,7,6,3) หร�อ> x=c(4,7,6,3) ก,ได)

Page 17: R programming language 2/57 teaching on March 8, 2015

4251 3

0011 0010 1010 1101 0001 0100 1011

ตั�วิอย�าง1 .จงสั่ร�างเวิคเตัอร x ที่#�ประกอบด�วิยสั่มูาช้�ก 4,

7, 6, 3> x<-c(4,7,6,3)> x[1] 4 7 6 3

2. จากเวิคเตัอร x สั่ร�างข้%&นในข้�อ 1. จงสั่ร�างเมูตัร�กซ์ y ข้นาด 2x2> y<-matrix(x,2,2)> y [,1] [,2][1,] 4 6[2,] 7 3

Page 18: R programming language 2/57 teaching on March 8, 2015

4251 3

0011 0010 1010 1101 0001 0100 1011

3. จงห์าอ�นเวิอรสั่ข้องเมูตัร�กซ์ y และให์�ช้(�อวิ�าเมูตัร�กซ์ z> z<-solve(y)> z [,1] [,2][1,] -0.1000000 0.2000000[2,] 0.2333333 -0.1333333

Page 19: R programming language 2/57 teaching on March 8, 2015

4251 3

0011 0010 1010 1101 0001 0100 1011

4, จงแสั่ดงให์�เห์)นวิ�า y*z = z*y = identity matrix> y%*%z [,1] [,2][1,] 1.000000e+00 -5.551115e-17[2,] -5.551115e-17 1.000000e+00> round(y%*%z) #ท.าให)จ#ดทศน�ยมเป6นจ.านวนเต,ม# [,1] [,2][1,] 1 0[2,] 0 1

> z%*%y [,1] [,2][1,] 1.000000e+00 -2.775558e-17[2,] 2.775558e-17 1.000000e+00> round(z%*%y) [,1] [,2][1,] 1 0[2,] 0 1

Page 20: R programming language 2/57 teaching on March 8, 2015

4251 3

0011 0010 1010 1101 0001 0100 1011• > A<-c(12, 8, 9, 15, 4, 1, 5, 8, 3)• > A• [1] 12 8 9 15 4 1 5 8 3

6.จากเวคเตอร� A สร)างข7�นในข)อ 5. จงสร)างเมตร�กซ้ำ� B ขนาด 3x3

> B<-matrix(A,3,3)> B [,1] [,2] [,3][1,] 12 15 5[2,] 8 4 8[3,] 9 1 3

5. จงสร)างเวคเตอร� A ท 2ประกอบด)วยสมาช�ก 12, 8, 9, 15, 4, 1, 5, 8, 3

Page 21: R programming language 2/57 teaching on March 8, 2015

4251 3

0011 0010 1010 1101 0001 0100 1011

7.จงหาอ�นเวอร�สของเมตร�กซ้ำ� B และให)ช�2อว$าเมตร�กซ้ำ� C

• > C<-solve(B)• > C• [,1] [,2] [,3]• [1,] 0.006369427 -0.06369427 0.15923567• [2,] 0.076433121 -0.01433121 -0.08917197• [3,] -0.044585987 0.19585987 -0.11464968

Page 22: R programming language 2/57 teaching on March 8, 2015

4251 3

0011 0010 1010 1101 0001 0100 1011> round(B%*%C) [,1] [,2] [,3][1,] 1 0 0[2,] 0 1 0[3,] 0 0 1> round(C%*%B) [,1] [,2] [,3][1,] 1 0 0[2,] 0 1 0[3,] 0 0 1

8. จงแสดงให)เห,นว$า B*C = C*B = identity matrix

Page 23: R programming language 2/57 teaching on March 8, 2015

4251 3

0011 0010 1010 1101 0001 0100 1011

การหา eigenvalues และ eigenvectors

1

e1

Page 24: R programming language 2/57 teaching on March 8, 2015

4251 3

0011 0010 1010 1101 0001 0100 1011

ตรวจสอบผลล�พื้ธ์� ของ transpose(e1)*e1

ผลล�พื้ธ์�เป6น 1

Page 25: R programming language 2/57 teaching on March 8, 2015

4251 3

0011 0010 1010 1101 0001 0100 1011

References

• Krause A and Olson M. (1997). The Basics of S and S-Plus. Springer-Verlag. New York.

• Gentle, James E. (2002). Elements of Computational Statistics.

Springer-Verlag. New York.

Page 26: R programming language 2/57 teaching on March 8, 2015

4251 3

0011 0010 1010 1101 0001 0100 1011

The End