กลับไปหน้าบทความ

อ่าน 15 นาที

R (ภาษาโปรแกรม)

R เป็น ภาษาโปรแกรม สำหรับ การคำนวณทางสถิติ และ การแสดงภาพข้อมูล ได้ รับ การนำไปใช้อย่างกว้างขวางในสาขา การทำเหมืองข้อมูล ชีว สารสนเทศ การวิเคราะห์ข้อมูล และวิทยาศาสตร์ ข้อมูล [ 9 ]

R (ภาษาโปรแกรม)

อาร์
หน้าต่างเทอร์มินัลสำหรับ R
กระบวนทัศน์รูปแบบหลายแบบ : แบบขั้นตอน , แบบเชิงวัตถุ , แบบฟังก์ชัน , แบบสะท้อน , แบบคำสั่ง , แบบอาร์เรย์[ 1 ]
ออกแบบโดยรอสส์ อิฮากาและโรเบิร์ต เจนท์เลแมน
นักพัฒนาทีมหลัก R
ปรากฏครั้งแรกสิงหาคม พ.ศ. 2536 ( สิงหาคม 1993 )
เวอร์ชันเสถียร
4.6.0 [ 2 ] แก้ไขข้อมูลนี้บนวิกิดาต้า / 24 เมษายน 2569 ( 24 เมษายน 2569 )
วินัยในการพิมพ์พลวัต
แพลตฟอร์มarm64และx86-64
ใบอนุญาตGPL-2.0 หรือเวอร์ชันที่ใหม่กว่า[ 3 ]
นามสกุลไฟล์
  • .R [ 4 ]
  • .r
  • .rdata
  • ประวัติ
  • .rds
  • .rda [ 5 ]
เว็บไซต์r-project.org
ได้รับอิทธิพลจาก
ได้รับอิทธิพล
  • โลโก้ Wikibooksการเขียนโปรแกรม Rที่ Wikibooks

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 ]

แพ็คเกจ

โปรดดูคำบรรยายภาพ
แผนภาพไวโอลินที่ สร้างขึ้นโดยใช้แพ็กเกจ ggplot2ในภาษา R สำหรับการแสดงภาพข้อมูล

แพ็กเกจ 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 Consortium เป็นหนึ่งในสามกลุ่มหลักที่ให้การสนับสนุน R

มีสามกลุ่มหลักที่ให้การสนับสนุนการพัฒนาซอฟต์แวร์ R:

R Journalเป็นวารสารวิชาการ แบบ เปิดเผยข้อมูล () ที่นำเสนอบทความขนาดสั้นถึงขนาดกลางเกี่ยวกับการใช้งานและการพัฒนาภาษา R วารสารนี้ประกอบด้วยบทความเกี่ยวกับแพ็กเกจ เคล็ดลับการเขียนโปรแกรม ข่าวสารจาก CRAN และข่าวสารจากมูลนิธิ

งานประชุม UseR! เป็นสถานที่หนึ่งที่ชุมชน R สามารถมารวมตัวกันได้

ชุมชน 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

ชุดแมนเดลบร็อต

ชุดแมนเดลบร็อตที่แสดงผลด้วยโปรแกรม R (หมายเหตุ: สีในภาพนี้แตกต่างจากผลลัพธ์ของโค้ดตัวอย่างในส่วน "ชุดแมนเดลบร็อต")

ตัวอย่างเซตแมนเดลบร็อต นี้ แสดงให้เห็นถึงการใช้จำนวนเชิงซ้อน โดยจำลองการ ทำ ซ้ำ 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 เวอร์ชัน 1.0.0 พร้อมลายเซ็นจากทีมงานหลักของ R ถ่ายภาพที่เมืองควิเบกในปี 2019

การเผยแพร่เวอร์ชัน 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 ]

อินเทอร์เฟซ

โดยปกติแล้ว R จะติดตั้งมาพร้อมกับคอนโซลบรรทัดคำสั่งแต่ก็มีหลายวิธีในการใช้งานภาษานี้:

กรอบงานทางสถิติที่ ใช้ R เป็นพื้นฐาน ได้แก่JamoviและJASP

การนำไปใช้

การใช้งาน R หลักนั้นเขียนขึ้นโดยใช้ภาษาC , FortranและR เป็น หลัก ส่วนการใช้งานอื่นๆ นั้นได้แก่:

Microsoft R Open (MRO) เป็นการใช้งาน R ณ วันที่ 30 มิถุนายน 2021 ไมโครซอฟต์เริ่มทยอยยกเลิก MRO และหันมาใช้การแจกจ่าย CRAN แทน[ 49 ]

การสนับสนุนเชิงพาณิชย์

แม้ว่า R จะเป็น โครงการ โอเพนซอร์สแต่ก็มีบางบริษัทที่ให้การสนับสนุนเชิงพาณิชย์:

  • Oracleให้การสนับสนุนเชิงพาณิชย์สำหรับBig Data Applianceซึ่งผสานรวม R เข้ากับผลิตภัณฑ์อื่นๆ ของบริษัท
  • IBM ให้การสนับสนุนเชิงพาณิชย์สำหรับการ ใช้งาน R ภายในHadoop

ดูเพิ่มเติม

หมายเหตุ

  1. ^โค้ดนี้จะแสดงรายการแพ็กเกจทั้งหมดที่ชุดแพ็กเกจ tidyverse ขึ้นอยู่กับไปยังข้อผิดพลาดมาตรฐานโค้ดอาจแสดงคำเตือนเกี่ยวกับความขัดแย้งของเนมสเปซ ซึ่งโดยทั่วไปสามารถละเลยได้
  2. ^ ข้อมูลเกี่ยวกับงานประชุมและสัมมนาต่างๆ สามารถ ดูได้จากรายการที่ดูแลโดยชุมชนบนGitHub ที่jumpingrivers.github.io/meetingsR/
  3. ^ สามารถดูรายการ คุณสมบัติ มาตรฐาน ของภาษา เพิ่มเติม ได้ในคู่มือ "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
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=R_(programming_language)&oldid=1359416079 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ R (ภาษาโปรแกรม)

R เป็น ภาษาโปรแกรม สำหรับ การคำนวณทางสถิติ และ การแสดงภาพข้อมูล ได้ รับ การนำไปใช้อย่างกว้างขวางในสาขา การทำเหมืองข้อมูล ชีว สารสนเทศ การวิเคราะห์ข้อมูล และวิทยาศาสตร์ ข้อมูล [ 9 ]

ประวัติศาสตร์

R เริ่มต้นโดยศาสตราจารย์ Ross Ihaka และ Robert Gentleman ในฐานะภาษาโปรแกรมเพื่อสอนสถิติเบื้องต้นที่ มหาวิทยาลัยโอ๊คแลนด์ [ 13 ] ภาษา นี้ได้รับแรงบันดาลใจจาก ภาษาโปรแกรม S โดยโปรแกรม S ส่วนใหญ่สามารถทำงานได้โดยไม่ต้องแก้ไขใน R [ 6 ]...

แพ็คเกจ

แพ็กเกจ R คือชุดของฟังก์ชัน เอกสาร และข้อมูลที่ขยายขีดความสามารถของ R [ 19 ] ตัวอย่างเช่น แพ็กเกจสามารถเพิ่มคุณสมบัติการรายงาน (โดยใช้แพ็กเกจเช่น R Markdown , Quarto, [ 20 ] knitr และ Sweave ) และรองรับเทคนิคทางสถิติต่างๆ (เช่น การสร้างแบบจำลอง เชิง เส้น เชิง...

ชุมชน

มีสามกลุ่มหลักที่ให้การสนับสนุนการพัฒนาซอฟต์แวร์ R: