อ่าน 15 นาที
R (ภาษาโปรแกรม)
R เป็น ภาษาโปรแกรม สำหรับ การคำนวณทางสถิติ และ การแสดงภาพข้อมูล ได้ รับ การนำไปใช้อย่างกว้างขวางในสาขา การทำเหมืองข้อมูล ชีว สารสนเทศ การวิเคราะห์ข้อมูล และวิทยาศาสตร์ ข้อมูล [ 9 ]
R (ภาษาโปรแกรม)
| อาร์ | |
|---|---|
หน้าต่างเทอร์มินัลสำหรับ R | |
| กระบวนทัศน์ | รูปแบบหลายแบบ : แบบขั้นตอน , แบบเชิงวัตถุ , แบบฟังก์ชัน , แบบสะท้อน , แบบคำสั่ง , แบบอาร์เรย์[ 1 ] |
| ออกแบบโดย | รอสส์ อิฮากาและโรเบิร์ต เจนท์เลแมน |
| นักพัฒนา | ทีมหลัก R |
| ปรากฏครั้งแรก | สิงหาคม พ.ศ. 2536 |
| เวอร์ชันเสถียร | 4.6.0 [ 2 ] |
| วินัยในการพิมพ์ | พลวัต |
| แพลตฟอร์ม | arm64และx86-64 |
| ใบอนุญาต | GPL-2.0 หรือเวอร์ชันที่ใหม่กว่า[ 3 ] |
| นามสกุลไฟล์ | |
| เว็บไซต์ | r-project.org |
| ได้รับอิทธิพลจาก | |
| ได้รับอิทธิพล | |
Rเป็นภาษาโปรแกรมสำหรับการคำนวณทางสถิติและการแสดงภาพข้อมูล ได้รับการนำไปใช้อย่างกว้างขวางในสาขาการทำเหมืองข้อมูลชีวสารสนเทศการวิเคราะห์ข้อมูลและวิทยาศาสตร์ข้อมูล [ 9 ]
ภาษา R หลักได้รับการขยายโดย แพ็กเกจซอฟต์แวร์จำนวนมากซึ่งประกอบด้วยโค้ดที่นำกลับมาใช้ใหม่เอกสารประกอบ และข้อมูลตัวอย่าง แพ็กเกจ R ที่ได้รับความนิยมมากที่สุดบางส่วนอยู่ใน ชุด tidyverseซึ่งช่วยเพิ่มฟังก์ชันการทำงานสำหรับการแสดงภาพ การแปลง และการสร้างแบบจำลองข้อมูล ตลอดจนปรับปรุงความง่ายในการเขียนโปรแกรม (ตามที่ผู้เขียนและผู้ใช้ระบุ) [ 10 ]
R เป็นซอฟต์แวร์ฟรีและโอเพนซอร์สที่เผยแพร่ภายใต้ใบอนุญาตสาธารณะทั่วไปของ GNU [ 3 ] [ 11 ] ภาษานี้ถูกนำไปใช้เป็นหลักในภาษาC , FortranและR เองมีไฟล์ปฏิบัติการที่คอม ไพล์ ไว้ล่วงหน้า สำหรับ ระบบปฏิบัติการ หลัก (รวมถึงLinux , MacOSและMicrosoft Windows )
แกนหลักคือภาษาตีความที่ มีอินเทอร์ เฟซบรรทัดคำสั่งดั้งเดิมนอกจากนี้ ยังมีแอปพลิ เคชันของ บุคคลที่สาม หลายตัวที่พร้อมใช้งานเป็น อินเทอร์เฟซผู้ใช้แบบกราฟิก แอปพลิเคชันดังกล่าวได้แก่RStudio ( สภาพแวดล้อมการพัฒนาแบบบูรณาการ ) Jupyter ( อินเทอร์เฟซโน้ตบุ๊ก ) รวมถึงTermuxและGoogle Colabสำหรับอุปกรณ์เคลื่อนที่[ 12 ]
ประวัติศาสตร์
R เริ่มต้นโดยศาสตราจารย์Ross IhakaและRobert Gentlemanในฐานะภาษาโปรแกรมเพื่อสอนสถิติเบื้องต้นที่มหาวิทยาลัยโอ๊คแลนด์ [ 13 ] ภาษานี้ได้รับแรงบันดาลใจจากภาษาโปรแกรม Sโดยโปรแกรม S ส่วนใหญ่สามารถทำงานได้โดยไม่ต้องแก้ไขใน R [ 6 ]ภาษานี้ยังได้รับแรงบันดาลใจจากขอบเขตคำศัพท์ของ Scheme ซึ่งอนุญาตให้ใช้ตัวแปรท้องถิ่นได้[ 1 ]
ชื่อของภาษา R มาจากทั้งการเป็นภาษาที่สืบทอดมาจากภาษา S และอักษรตัวแรกที่เหมือนกันของผู้เขียน Ross และ Robert [ 14 ]ในเดือนสิงหาคม พ.ศ. 2536 Ihaka และ Gentleman ได้โพสต์ ไฟล์ ไบนารีของ R บน StatLib ซึ่งเป็นเว็บไซต์เก็บข้อมูล[ 15 ]ในเวลาเดียวกัน พวกเขายังประกาศการโพสต์บนรายชื่อผู้รับจดหมาย s-news ด้วย [ 16 ]เมื่อวันที่ 5 ธันวาคม พ.ศ. 2540 R กลายเป็นโครงการของ GNUเมื่อมีการเผยแพร่เวอร์ชัน 0.60 [ 17 ]เมื่อวันที่ 29 กุมภาพันธ์ พ.ศ. 2543 ได้มีการเผยแพร่เวอร์ชัน 1.0 [ 18 ]
แพ็คเกจ

แพ็กเกจ Rคือชุดของฟังก์ชัน เอกสาร และข้อมูลที่ขยายขีดความสามารถของ R [ 19 ]ตัวอย่างเช่น แพ็กเกจสามารถเพิ่มคุณสมบัติการรายงาน (โดยใช้แพ็กเกจเช่นR Markdown , Quarto, [ 20 ] knitrและSweave ) และรองรับเทคนิคทางสถิติต่างๆ (เช่น การสร้างแบบจำลอง เชิง เส้น เชิงเส้นทั่วไปและไม่เชิงเส้นการทดสอบทางสถิติแบบคลาสสิกการวิเคราะห์เชิงพื้นที่การวิเคราะห์อนุกรมเวลาและการจัดกลุ่ม ) ความง่ายในการติดตั้งและใช้งานแพ็กเกจมีส่วนช่วยให้ภาษานี้ได้รับการยอมรับในวิทยาศาสตร์ข้อมูล[ 21 ]
แพ็กเกจพื้นฐานจะพร้อมใช้งานทันทีเมื่อเริ่มใช้งาน R หลังจากการติดตั้ง โดยแพ็กเกจเหล่านี้จะจัดเตรียมไวยากรณ์และคำสั่งพื้นฐานที่จำเป็นสำหรับการเขียนโปรแกรม การคำนวณ การสร้างกราฟิก การคำนวณเลขคณิตพื้นฐานและฟังก์ชันทางสถิติ[ 22 ]
ตัวอย่างหนึ่งคือ ชุดแพ็กเกจ R ชื่อ tidyverseซึ่งรวมแพ็กเกจย่อยหลายแพ็กเกจเข้าด้วยกันเพื่อให้มีAPI ทั่วไป ชุดแพ็กเกจนี้เชี่ยวชาญในงานที่เกี่ยวข้องกับการเข้าถึงและประมวลผล " ข้อมูลที่เป็นระเบียบ " [ 23 ]ซึ่งเป็นข้อมูลที่อยู่ใน ตาราง สองมิติที่มีแถวเดียวสำหรับแต่ละการสังเกตและคอลัมน์เดียวสำหรับแต่ละตัวแปร[ 24 ]
การติดตั้งแพ็กเกจจะเกิดขึ้นเพียงครั้งเดียว ตัวอย่างเช่น ในการติดตั้งคอลเลกชัน tidyverse: [ 24 ]
> ติดตั้งแพ็กเกจ( "tidyverse" )ในการโหลดฟังก์ชัน ข้อมูล และเอกสารประกอบของแพ็กเกจ จะต้องเรียกใช้library()ฟังก์ชันนั้น ในการโหลดคอลเลกชัน tidyverse สามารถเรียกใช้โค้ดต่อไปนี้ได้: [ a ]
> # สามารถใส่ชื่อแพ็กเกจไว้ในเครื่องหมายคำพูดได้> library ( "tidyverse" )> # แต่สามารถใช้ชื่อแพ็กเกจโดยไม่ต้องใส่เครื่องหมายคำพูดก็ได้> library ( tidyverse )เครือข่ายเก็บถาวร R ที่ครอบคลุม (CRAN) ก่อตั้งขึ้นในปี 1997 โดย Kurt Hornik และFriedrich Leischเพื่อจัดเก็บซอร์สโค้ดไฟล์ปฏิบัติการ เอกสาร และแพ็กเกจที่ผู้ใช้สร้างขึ้น ของ R [ 25 ]ชื่อและขอบเขตของ CRAN เลียนแบบเครือข่ายเก็บถาวร TeX ที่ครอบคลุม (CTAN) และเครือข่ายเก็บถาวร Perl ที่ครอบคลุม (CPAN) [ 25 ]เดิมที CRAN มีเพียงสามไซต์มิเรอร์และแพ็กเกจที่ร่วมสร้างสิบสองรายการ[ 26 ]ณ วันที่ 30 มิถุนายน 2025 มีมิเรอร์ 90 รายการ[ 27 ]และแพ็กเกจที่ร่วมสร้าง 22,390 รายการ[ 28 ]แพ็กเกจยังมีอยู่ใน ที่ เก็บข้อมูลเช่น R-Forge, Omegahat และGitHub [ 29 ] [ 30 ] [ 31 ]
เพื่อ ให้คำแนะนำบนเว็บไซต์ CRAN ส่วน Task Viewsจะแสดงรายการแพ็กเกจที่เกี่ยวข้องกับหัวข้อเฉพาะ ตัวอย่างหัวข้อ ได้แก่การอนุมานเชิงสาเหตุการเงินพันธุศาสตร์การคำนวณประสิทธิภาพสูง การเรียนรู้ ของเครื่องการถ่ายภาพทางการแพทย์การวิเคราะห์เชิงอภิมานสังคมศาสตร์และสถิติเชิงพื้นที่
โครงการBioconductorนำเสนอแพ็กเกจสำหรับการวิเคราะห์ข้อมูลจีโนม ดีเอ็นเอเสริมไมโครอาร์เรย์และวิธี การจัดลำดับจีโนมความเร็วสูง
ชุมชน

มีสามกลุ่มหลักที่ให้การสนับสนุนการพัฒนาซอฟต์แวร์ R:
- ทีม R Core ก่อตั้งขึ้นในปี 1997 เพื่อดูแลรักษารหัสต้นฉบับ ของ R
- มูลนิธิR เพื่อการคำนวณทางสถิติก่อตั้งขึ้นในเดือนเมษายน พ.ศ. 2546 เพื่อให้การสนับสนุนทางการเงิน
- R Consortium เป็น โครงการ ของ Linux Foundationเพื่อพัฒนาโครงสร้างพื้นฐานของ R
R Journalเป็นวารสารวิชาการ แบบ เปิดเผยข้อมูล () ที่นำเสนอบทความขนาดสั้นถึงขนาดกลางเกี่ยวกับการใช้งานและการพัฒนาภาษา R วารสารนี้ประกอบด้วยบทความเกี่ยวกับแพ็กเกจ เคล็ดลับการเขียนโปรแกรม ข่าวสารจาก CRAN และข่าวสารจากมูลนิธิ

ชุมชน R จัดการประชุมและพบปะกันแบบตัวต่อตัวมากมาย[ b ]กลุ่มเหล่านี้ได้แก่:
- UseR!: การประชุมผู้ใช้ R ระดับนานาชาติประจำปี ( เว็บไซต์ )
- แนวทางในการคำนวณเชิงสถิติ (DSC) ( เว็บไซต์ )
- R-Ladies : องค์กรส่งเสริมความหลากหลายทางเพศในชุมชน R ( เว็บไซต์ )
- SatRdays: การประชุมที่เน้นเรื่อง R ซึ่งจัดขึ้นในวันเสาร์ ( เว็บไซต์ )
- งานประชุมด้านวิทยาศาสตร์ข้อมูลและปัญญาประดิษฐ์ ( เว็บไซต์ )
- posit::conf (เดิมชื่อ rstudio::conf) ( เว็บไซต์ )
- uRos: การประชุมประจำปีเกี่ยวกับการใช้ R ในสถิติทางการ ( เว็บไซต์ )
บนเว็บไซต์โซเชียลมีเดีย เช่น Twitter #rstatsสามารถใช้แฮชแท็กเพื่อติดตามความคืบหน้าใหม่ๆ ในชุมชน R ได้[ 32 ]
ตัวอย่าง
สวัสดีโลก!
ต่อไปนี้คือโปรแกรม "สวัสดีโลก!" :
> พิมพ์( "Hello, World!" ) [1] "Hello, World!"นี่คือเวอร์ชันทางเลือกที่ใช้cat()ฟังก์ชันดังกล่าว:
> แมว( "สวัสดีโลก!" ) สวัสดีโลก!ไวยากรณ์พื้นฐาน
ตัวอย่างต่อไปนี้แสดงให้เห็นถึงไวยากรณ์พื้นฐานของภาษาและการใช้งานอินเทอร์เฟซบรรทัดคำสั่ง[ c ]
ใน R ตัวดำเนินการกำหนดค่า ที่นิยมโดยทั่วไป คือลูกศรที่สร้างจากอักขระสองตัว<-แม้ว่า=จะสามารถใช้ได้ในบางกรณีก็ตาม[ 33 ]
> x <- 1 : 6 # สร้างเวกเตอร์ตัวเลขในสภาพแวดล้อมปัจจุบัน> y <- x ^ 2 # ในทำนองเดียวกัน สร้างเวกเตอร์ตามค่าใน x > y # พิมพ์เนื้อหาของเวกเตอร์[1] 1 4 9 16 25 36> z <- x + y # สร้างเวกเตอร์ใหม่ที่เป็นผลรวมของ x และ y > z # ส่งคืนเนื้อหาของ z ไปยังสภาพแวดล้อมปัจจุบัน[1] 2 6 12 20 30 42> z_matrix <- matrix ( z , nrow = 3 ) # สร้างเมทริกซ์ใหม่ที่แปลง เวกเตอร์ z ให้เป็นออบเจ็กต์เมทริกซ์ 3x2 > z_matrix [,1] [,2] [1,] 2 20 [2,] 6 30 [3,] 12 42> 2 * t ( z_matrix ) - 2 # สลับแถวและคอลัมน์ของเมทริกซ์; คูณทุกองค์ประกอบด้วย 2; # ลบ 2 ออกจากแต่ละองค์ประกอบในเมทริกซ์; และ # จากนั้นส่งผลลัพธ์กลับไปยังเทอร์มินัล [,1] [,2] [,3] [1,] 2 10 22 [2,] 38 58 82# สร้างออบเจ็กต์ dataframe ใหม่ที่มีข้อมูลจากเมทริกซ์ z_matrix ที่สลับแถวและคอลัมน์แล้ว โดยมีชื่อแถวเป็น 'A' และ 'B' > new_df <- data.frame ( t ( z_matrix ), row.names = c ( "A" , "B" )) > names ( new_df ) <- c ( "X" , "Y" , "Z" ) # กำหนดชื่อคอลัมน์ของ dataframe new_df เป็น X, Y และ Z > new_df # พิมพ์ผลลัพธ์ปัจจุบัน XYZ A 2 6 12 B 20 30 42> new_df $ Z # แสดงผลคอลัมน์ Z [1] 12 42> new_df $ Z == new_df [ 'Z' ] && new_df [ 3 ] == new_df $ Z # คอลัมน์ Z ของ dataframe สามารถเข้าถึงได้โดยใช้ไวยากรณ์ $Z, ['Z'] หรือ [3] และค่าจะเหมือนกัน[1] TRUE> attributes ( new_df ) # พิมพ์ข้อมูลเกี่ยวกับแอตทริบิวต์ของ dataframe new_df $names [1] "X" "Y" "Z"$row.names [1] "A" "B"$class [1] "data.frame"> attributes ( new_df ) $ row.names <- c ( "one" , "two" ) # เข้าถึงและเปลี่ยนแปลงแอตทริบิวต์ row.names; สามารถทำได้โดยใช้ฟังก์ชัน rownames() > new_df XYZ one 2 6 12 two 20 30 42โครงสร้างของฟังก์ชัน
R สามารถสร้างฟังก์ชันที่เพิ่มฟังก์ชันการทำงานใหม่และช่วยให้สามารถนำโค้ดกลับมาใช้ใหม่ได้[ 34 ]อ็อบเจ็กต์ที่สร้างขึ้นภายในตัวฟังก์ชัน (ซึ่งล้อมรอบด้วยวงเล็บปีกกา) จะยังคง สามารถเข้าถึงได้ จากภายในฟังก์ชันเท่านั้น และสามารถส่งคืน ข้อมูลประเภท ใดก็ได้ ใน R ฟังก์ชันเกือบทั้งหมดและฟังก์ชันที่ผู้ใช้กำหนด ทั้งหมด เป็นโคลเชอร์[ 35 ]
ต่อไปนี้เป็นตัวอย่างของการสร้างฟังก์ชันเพื่อทำการคำนวณทางคณิตศาสตร์:
# พารามิเตอร์อินพุตของฟังก์ชันคือ x และ y # ฟังก์ชันชื่อ f จะส่งคืนค่าผลรวมเชิงเส้นของ x และ y f <- ฟังก์ชัน( x , y ) { z <- 3 * x + 4 * y }# การระบุ return() อย่างชัดเจนนั้นเป็นทางเลือก—ในกรณีนี้สามารถแทนที่ด้วย `z` เฉยๆ ได้return ( z ) }# อีกทางเลือกหนึ่งคือ การส่งคืนค่าคำสั่งสุดท้ายที่ถูก ดำเนินการในฟังก์ชันโดยปริยายf <- function ( x y ) 3 * x + 4 * yต่อไปนี้คือผลลัพธ์บางส่วนจากการใช้ฟังก์ชันที่กำหนดไว้ข้างต้น:
> f ( 1 , 2 ) # 3 * 1 + 4 * 2 = 3 + 8 [1] 11> f ( c ( 1 , 2 , 3 ), c ( 5 , 3 , 4 )) # การคำนวณแบบทีละองค์ประกอบ[1] 23 18 25> f ( 1 : 3 , 4 ) # เทียบเท่ากับ f(c(1, 2, 3), c(4, 4, 4)) [1] 19 22 25สามารถกำหนดฟังก์ชันที่จะใช้เป็นตัวดำเนินการแบบอินฟิกซ์ได้โดยใช้ไวยากรณ์พิเศษ`%name%`โดยที่ "name" คือชื่อตัวแปรของฟังก์ชัน:
> `%sumx2y2%` <- ฟังก์ชั่น( e1 , e2 ) { e1 ^ 2 + e2 ^ 2 } > 1 : 3 %sumx2y2% - ( 1 : 3 ) [1] 2 8 18ตั้งแต่ R เวอร์ชัน 4.1.0 เป็นต้นไป ฟังก์ชันสามารถเขียนได้ในรูปแบบย่อ (ได้รับแรงบันดาลใจจากแคลคูลัสแลมบ์ดา ) ซึ่งมีประโยชน์สำหรับการส่งผ่านฟังก์ชันนิรนามไปยังฟังก์ชันลำดับสูงกว่า: [ 36 ]
> sapply ( 1 : 5 , \ ( i ) i ^ 2 ) # ในที่นี้ \(i) เหมือนกับฟังก์ชัน(i) [1] 1 4 9 16 25ผู้ควบคุมท่อพื้นเมือง
ใน R เวอร์ชัน 4.1.0 ได้มีการแนะนำตัวดำเนินการท่อ แบบเนทีฟ , , [ 37 ]ตัวดำเนินการนี้อนุญาตให้ผู้ใช้สามารถเชื่อมโยงฟังก์ชันเข้าด้วยกัน แทนที่จะใช้การเรียกฟังก์ชันแบบซ้อนกัน |>
> nrow ( subset ( mtcars , cyl == 4 )) # ซ้อนกันโดยไม่มีอักขระไปป์[1] 11> mtcars |> subset ( cyl == 4 ) |> nrow () # การใช้ตัวอักษรไปป์[1] 11อีกทางเลือกหนึ่งนอกเหนือจากการใช้ฟังก์ชันซ้อนกัน คือการใช้อ็อบเจ็กต์ตัวกลาง แทนที่จะใช้ตัวดำเนินการไปป์ (pipe operator):
> mtcars_subset_rows <- subset ( mtcars , cyl == 4 ) > num_mtcars_subset <- nrow ( mtcars_subset_rows ) > print ( num_mtcars_subset ) [1] 11แม้ว่าตัวดำเนินการ pipe สามารถสร้างโค้ดที่อ่านง่ายกว่าได้ แต่โปรแกรมเมอร์ R ที่มีอิทธิพลอย่างHadley Wickhamแนะนำให้เชื่อมโยงโค้ดเข้าด้วยกันไม่เกิน 10-15 บรรทัดโดยใช้ตัวดำเนินการนี้ และบันทึกไว้ในออบเจ็กต์ที่มีชื่อที่มีความหมายเพื่อหลีกเลี่ยงการทำให้โค้ดคลุมเครือ[ 38 ]
การเขียนโปรแกรมเชิงวัตถุ
ภาษา R มีการสนับสนุนการเขียนโปรแกรมเชิงวัตถุ โดยธรรมชาติ มีเฟรมเวิร์กพื้นฐานสองเฟรมเวิร์กที่เรียกว่าระบบ S3 และ S4 ระบบแรกซึ่งไม่เป็นทางการกว่า รองรับการเรียกใช้ฟังก์ชันแบบเดี่ยวบนอาร์กิวเมนต์แรก และวัตถุจะถูกกำหนดให้กับคลาสโดยการตั้งค่าแอตทริบิวต์ "class" ในแต่ละวัตถุ ระบบหลังเป็นระบบที่คล้ายกับCommon Lisp Object System (CLOS)โดยมีคลาสที่เป็นทางการ (ซึ่งได้มาจากS เช่นกัน ) และเมธอดทั่วไป ซึ่งรองรับการเรียกใช้ฟังก์ชันแบบหลายทางและการสืบทอดแบบหลายทาง[ 39 ]
ในตัวอย่างด้านล่างนี้summary()เป็นฟังก์ชันทั่วไปที่จะส่งต่อไปยังเมธอดต่างๆ ขึ้นอยู่กับว่าอาร์กิวเมนต์ เป็น เวกเตอร์ตัวเลขหรือแฟกเตอร์ :
> data <- c ( "a" , "b" , "c" , "a" , NA ) > summary ( data ) Length Class Mode 5 character character > summary ( as.factor ( data )) abc NA's 2 1 1 1การสร้างแบบจำลองและการวางกราฟ

plot.lm()ฟังก์ชัน) สามารถใช้สัญลักษณ์ทางคณิตศาสตร์ในป้ายกำกับได้ ดังแสดงในแผนภาพด้านล่างซ้ายภาษา R มีระบบสนับสนุนการสร้างแบบจำลองข้อมูลและกราฟิกในตัว ตัวอย่างต่อไปนี้แสดงให้เห็นว่า R สามารถสร้างและพล็อตแบบจำลองเชิงเส้นที่มีค่าความคลาดเคลื่อน ได้อย่างไร
# สร้างค่า x และ y x <- 1 : 6 y <- x ^ 2# แบบจำลองการถดถอยเชิงเส้น: y = A + B * x model <- lm ( y ~ x )# แสดงสรุปรายละเอียดของโมเดล( โมเดล)# สร้างเลย์เอาต์ 2x2 สำหรับรูปภาพpar ( mfrow = c ( 2 , 2 ))# แสดงกราฟการวินิจฉัยของแบบจำลองplot ( model )ผลลัพธ์จากsummary()ฟังก์ชันในบล็อกโค้ดด้านบนมีดังนี้:
ค่าตกค้าง: 1 2 3 4 5 6 7 8 9 10 3.3333 -0.6667 -2.6667 -2.6667 -0.6667 3.3333สัมประสิทธิ์: ค่าประมาณ ค่าเบี่ยงเบนมาตรฐาน ค่า t ค่า Pr(>|t|) (จุดตัดแกน y) -9.3333 2.8441 -3.282 0.030453 * x 7.0000 0.7303 9.585 0.000662 *** --- รหัสความสำคัญ: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1ค่าความคลาดเคลื่อนมาตรฐานของส่วนเหลือ: 3.055 ที่ระดับความเป็นอิสระ 4 ค่า R-squared หลายตัว: 0.9583 ค่า R-squared ที่ปรับแล้ว: 0.9478 ค่าสถิติ F: 91.88 ที่ระดับความเป็นอิสระ 1 และ 4 ค่า p: 0.000662ชุดแมนเดลบร็อต

ตัวอย่างเซตแมนเดลบร็อต นี้ แสดงให้เห็นถึงการใช้จำนวนเชิงซ้อน โดยจำลองการ ทำ ซ้ำ 20 ครั้งแรกของสมการ ซึ่งแทนค่าคงที่เชิงซ้อน ที่แตกต่างกันz = z2 + cc
ในการเรียกใช้โค้ดตัวอย่างนี้ จำเป็นต้องติดตั้งแพ็กเกจที่ให้บริการwrite.gif()ฟังก์ชันดังกล่าวเสียก่อน:
ติดตั้งแพ็กเกจ( "caTools" )ตัวอย่างโค้ดมีดังนี้:
ไลบรารี( caTools )jet.colors <- colorRampPalette ( c ( "green" , "pink" , "#007FFF" , "cyan" , "#7FFF7F" , "white" , "#FF7F00" , "red" , "#7F0000" ))dx <- 1500 # กำหนดความกว้างdy <- 1400 # กำหนดความสูงC <- complex ( real = rep ( seq ( -2.2 , 1.0 , length.out = dx ), each = dy ), imag = rep ( seq ( -1.2 , 1.2 , length.out = dy ), times = dx ) )# แปลงเป็นเมทริกซ์ของจำนวนเชิงซ้อนC <- matrix ( C , dy , dx )# เริ่มต้นอาร์เรย์ 3 มิติสำหรับเอาต์พุตX <- array ( 0 , c ( dy , dx , 20 ))Z <- 0# วนลูป 20 ครั้งสำหรับ( k ใน1 : 20 ) {# สมการผลต่างกลางZ <- Z ^ 2 + C# บันทึกผลลัพธ์X [, , k ] <- exp ( - abs ( Z )) }write.gif ( X , "Mandelbrot.gif" , col = jet.colors , delay = 100 )ชื่อเวอร์ชัน

การเผยแพร่เวอร์ชัน R ทั้งหมดตั้งแต่ 2.14.0 เป็นต้นไปจะมีชื่อรหัสที่อ้างอิงถึงการ์ตูนและภาพยนตร์Peanuts [ 40 ] [ 41 ] [ 42 ]
ในปี 2018 Peter Dalgaard นักพัฒนาหลักของ R ได้นำเสนอประวัติการเผยแพร่ R ตั้งแต่ปี 1997 [ 43 ]การเผยแพร่ในช่วงแรกๆ ที่น่าสนใจก่อนการเผยแพร่ที่มีชื่อ ได้แก่:
- เวอร์ชัน 1.0.0 เปิดตัวเมื่อวันที่ 29 กุมภาพันธ์ พ.ศ. 2543 ซึ่งตรงกับวันอธิกสุรทิน
- เวอร์ชัน 2.0.0 วางจำหน่ายเมื่อวันที่ 4 ตุลาคม พ.ศ. 2547 "ซึ่งอย่างน้อยก็ฟังดูดี" [ 43 ]
แนวคิดในการตั้งชื่อรุ่น R ได้รับแรงบันดาลใจจากระบบการตั้งชื่อรุ่นของDebianและUbuntu Dalgaard ตั้งข้อสังเกตถึงเหตุผลเพิ่มเติมสำหรับการใช้การอ้างอิง Peanuts ในชื่อรหัส R ซึ่งก็คือข้อสังเกตที่ตลกขบขันที่ว่า "ทุกคนในสาขาสถิติเป็นP-nut " [ 43 ]
อินเทอร์เฟซ
- ภาพหน้าจอแสดงส่วนหน้าของ RKWard ที่ทำงานบนสภาพแวดล้อม KDE 4
- ใช้งาน R ในโปรแกรมแก้ไขข้อความ Emacs โดยใช้แพ็กเกจ ESS
โดยปกติแล้ว R จะติดตั้งมาพร้อมกับคอนโซลบรรทัดคำสั่งแต่ก็มีหลายวิธีในการใช้งานภาษานี้:
- สภาพแวดล้อมการพัฒนาแบบบูรณาการ (IDE) :
- R.app [ 44 ] (เฉพาะ OSX/ macOS )
- รีเทล GUI
- ผู้บัญชาการอาร์
- อาร์เคเวิร์ด
- อาร์สตูดิโอ
- โพซิตรอน[ 45 ]
- ทินน์-อาร์[ 46 ]
- IDE อเนกประสงค์:
- Eclipseผ่านปลั๊กอิน StatET
- Visual Studioผ่านR Tools สำหรับ Visual Studio
- โปรแกรมแก้ไขซอร์สโค้ด :
- ภาษาสคริปต์อื่นๆ:
- ภาษาโปรแกรมอเนกประสงค์:
กรอบงานทางสถิติที่ ใช้ R เป็นพื้นฐาน ได้แก่JamoviและJASP
การนำไปใช้
การใช้งาน R หลักนั้นเขียนขึ้นโดยใช้ภาษาC , FortranและR เป็น หลัก ส่วนการใช้งานอื่นๆ นั้นได้แก่:
- pqR ( Pretty Quick R ) พัฒนาโดยRadford M. Nealซึ่งพยายามปรับปรุงการจัดการหน่วยความจำ
- RenjinสำหรับJava Virtual Machine
- CXXRและ Riposte [ 47 ]เขียนด้วยภาษาC ++
- FastR ของ Oracle สร้าง ขึ้นบนGraalVM
- TIBCO Enterprise Runtime for R (TERR) เพื่อบูรณาการกับSpotfire [ 48 ] (บริษัทยังขายS-Plusซึ่งเป็นการใช้งานภาษา S ที่เลิกใช้แล้วด้วย)
Microsoft R Open (MRO) เป็นการใช้งาน R ณ วันที่ 30 มิถุนายน 2021 ไมโครซอฟต์เริ่มทยอยยกเลิก MRO และหันมาใช้การแจกจ่าย CRAN แทน[ 49 ]
การสนับสนุนเชิงพาณิชย์
แม้ว่า R จะเป็น โครงการ โอเพนซอร์สแต่ก็มีบางบริษัทที่ให้การสนับสนุนเชิงพาณิชย์:
- Oracleให้การสนับสนุนเชิงพาณิชย์สำหรับBig Data Applianceซึ่งผสานรวม R เข้ากับผลิตภัณฑ์อื่นๆ ของบริษัท
- IBM ให้การสนับสนุนเชิงพาณิชย์สำหรับการ ใช้งาน R ภายในHadoop
ดูเพิ่มเติม
- การเปรียบเทียบโปรแกรมวิเคราะห์ทางสถิติ
- รายชื่อซอฟต์แวร์วิเคราะห์เชิงตัวเลข
- รายชื่อหนังสือเกี่ยวกับการเขียนโปรแกรมภาษา R
- รายชื่อซอฟต์แวร์และเครื่องมือ R
- รายชื่อซอฟต์แวร์ทางสถิติ
- อาร์เมตริกส์
หมายเหตุ
- ^โค้ดนี้จะแสดงรายการแพ็กเกจทั้งหมดที่ชุดแพ็กเกจ tidyverse ขึ้นอยู่กับไปยังข้อผิดพลาดมาตรฐานโค้ดอาจแสดงคำเตือนเกี่ยวกับความขัดแย้งของเนมสเปซ ซึ่งโดยทั่วไปสามารถละเลยได้
- ^ ข้อมูลเกี่ยวกับงานประชุมและสัมมนาต่างๆ สามารถ ดูได้จากรายการที่ดูแลโดยชุมชนบนGitHub ที่jumpingrivers.github.io/meetingsR/
- ^ สามารถดูรายการ คุณสมบัติ มาตรฐาน ของภาษา เพิ่มเติม ได้ในคู่มือ "An Introduction to R " ที่cran.r-project.org/doc/manuals/R-intro.pdf
อ่านเพิ่มเติม
- Wickham, Hadley; Çetinkaya-Rundel, Mine; Grolemund, Garrett (2023). R สำหรับวิทยาศาสตร์ข้อมูล: การนำเข้า การจัดระเบียบ การแปลง การแสดงภาพ และการสร้างแบบจำลองข้อมูล (ฉบับที่ 2). ปักกิ่ง บอสตัน ฟาร์นแฮม เซบาสโตโพล โตเกียว: O'Reilly . ISBN 978-1-4920-9740-2.
- Gagolewski, Marek ( 2024). การ เขียนโปรแกรม R เชิงลึก doi : 10.5281/ZENODO.7490464 ISBN 978-0-6455719-2-9.
ลิงก์ภายนอก
- เอกสารประกอบการใช้งาน R
- เอกสารทางเทคนิค R
- Big Book of R : รายชื่อหนังสือเกี่ยวกับการเขียนโปรแกรมด้วยภาษา R ที่คัดสรรมาอย่างดี
- หนังสือที่เกี่ยวข้องกับโครงการ R - R Projectรายชื่อหนังสือที่คัดสรรแล้วพร้อมคำอธิบายบางส่วนที่เกี่ยวข้องกับ R หรือ S
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ R (ภาษาโปรแกรม)
R เป็น ภาษาโปรแกรม สำหรับ การคำนวณทางสถิติ และ การแสดงภาพข้อมูล ได้ รับ การนำไปใช้อย่างกว้างขวางในสาขา การทำเหมืองข้อมูล ชีว สารสนเทศ การวิเคราะห์ข้อมูล และวิทยาศาสตร์ ข้อมูล [ 9 ]
ประวัติศาสตร์
R เริ่มต้นโดยศาสตราจารย์ Ross Ihaka และ Robert Gentleman ในฐานะภาษาโปรแกรมเพื่อสอนสถิติเบื้องต้นที่ มหาวิทยาลัยโอ๊คแลนด์ [ 13 ] ภาษา นี้ได้รับแรงบันดาลใจจาก ภาษาโปรแกรม S โดยโปรแกรม S ส่วนใหญ่สามารถทำงานได้โดยไม่ต้องแก้ไขใน R [ 6 ]...
แพ็คเกจ
แพ็กเกจ R คือชุดของฟังก์ชัน เอกสาร และข้อมูลที่ขยายขีดความสามารถของ R [ 19 ] ตัวอย่างเช่น แพ็กเกจสามารถเพิ่มคุณสมบัติการรายงาน (โดยใช้แพ็กเกจเช่น R Markdown , Quarto, [ 20 ] knitr และ Sweave ) และรองรับเทคนิคทางสถิติต่างๆ (เช่น การสร้างแบบจำลอง เชิง เส้น เชิง...
ชุมชน
มีสามกลุ่มหลักที่ให้การสนับสนุนการพัฒนาซอฟต์แวร์ R: