คำถามติดแท็ก r-faq

แท็ก r-faq ถูกสร้างขึ้นเพื่อจัดกลุ่มคำถามจำนวน จำกัด ที่พูดถึงปัญหาที่เกิดขึ้นเป็นประจำในแท็ก R ไม่ใช่คำถามที่พบบ่อยอย่างเป็นทางการเกี่ยวกับ R สำหรับ SO แต่ควรทำหน้าที่เป็นแหล่งข้อมูลที่น่าสนใจเกี่ยวกับปัญหาที่พบบ่อย

23
วิธีทำตัวอย่าง R ที่สามารถทำซ้ำได้อย่างยอดเยี่ยม
คำตอบของคำถามนี้เป็นความพยายามของชุมชน แก้ไขคำตอบที่มีอยู่เพื่อปรับปรุงโพสต์นี้ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ เมื่อพูดคุยเกี่ยวกับประสิทธิภาพกับเพื่อนร่วมงานการสอนการส่งรายงานข้อผิดพลาดหรือค้นหาคำแนะนำเกี่ยวกับรายชื่อผู้รับจดหมายและที่นี่ใน Stack Overflow ตัวอย่างที่ทำซ้ำได้มักถูกถามและเป็นประโยชน์เสมอ เคล็ดลับในการสร้างตัวอย่างที่ยอดเยี่ยมคืออะไร คุณวางโครงสร้างข้อมูลได้อย่างไรRในรูปแบบข้อความ? ข้อมูลอื่นใดที่คุณควรระบุ เทคนิคอื่น ๆ ที่มีนอกเหนือจากการใช้dput(), dump()หรือstructure()? เมื่อใดที่คุณควรรวมlibrary()หรือrequire()ข้อความ ซึ่งคำสงวนควรหลีกเลี่ยงการอย่างใดอย่างหนึ่งนอกเหนือไปจากc, df, dataฯลฯ ? วิธีการหนึ่งที่ทำให้ดี R ตัวอย่างที่ทำซ้ำได้?
2473 r  r-faq 

19
วิธีจัดเรียงดาต้าเฟรมโดยใช้หลายคอลัมน์
ฉันต้องการเรียงลำดับ data.frame โดยหลายคอลัมน์ ตัวอย่างเช่น data.frame ด้านล่างนี้ฉันต้องการจัดเรียงตามคอลัมน์z(จากมากไปน้อย) จากนั้นตามด้วยคอลัมน์b(จากน้อยไปมาก): dd <- data.frame(b = factor(c("Hi", "Med", "Hi", "Low"), levels = c("Low", "Med", "Hi"), ordered = TRUE), x = c("A", "D", "A", "C"), y = c(8, 3, 9, 9), z = c(1, 1, 1, 2)) dd b x y z 1 Hi A 8 …
1316 r  sorting  dataframe  r-faq 

13
วิธีเข้าร่วม (รวม) เฟรมข้อมูล (ภายใน, ภายนอก, ซ้าย, ขวา)
รับกรอบข้อมูลสอง: df1 = data.frame(CustomerId = c(1:6), Product = c(rep("Toaster", 3), rep("Radio", 3))) df2 = data.frame(CustomerId = c(2, 4, 6), State = c(rep("Alabama", 2), rep("Ohio", 1))) df1 # CustomerId Product # 1 Toaster # 2 Toaster # 3 Toaster # 4 Radio # 5 Radio # 6 Radio df2 # CustomerId …
1233 r  join  merge  dataframe  r-faq 

10
ฟังก์ชั่นการจัดกลุ่ม (tapply, by, aggregate) และ * ใช้ตระกูล
เมื่อใดก็ตามที่ฉันต้องการทำอะไรบางอย่าง "map" py ใน R ฉันมักจะพยายามใช้ฟังก์ชั่นในapplyครอบครัว อย่างไรก็ตามฉันไม่เคยเข้าใจความแตกต่างระหว่างพวกเขา - วิธี { sapply, lapplyฯลฯ } ใช้ฟังก์ชันกับอินพุต / จัดกลุ่มอินพุตเอาต์พุตจะเป็นอย่างไรหรือแม้กระทั่งอินพุตที่เป็นดังนั้นฉันจึงมักจะ เพียงผ่านพวกเขาทั้งหมดจนกว่าฉันจะได้รับสิ่งที่ฉันต้องการ ใครสามารถอธิบายวิธีการใช้อันไหนได้บ้าง ความเข้าใจในปัจจุบันของฉัน (อาจไม่ถูกต้อง / ไม่สมบูรณ์) คือ ... sapply(vec, f): input เป็นเวกเตอร์ เอาท์พุทเป็นเวกเตอร์ / เมทริกซ์ที่องค์ประกอบiคือf(vec[i])ให้คุณเมทริกซ์ถ้าfมีเอาท์พุทหลายองค์ประกอบ lapply(vec, f): เหมือนกันsapplyแต่เอาท์พุทเป็นรายการ? apply(matrix, 1/2, f): input เป็นเมทริกซ์ เอาต์พุตเป็นเวกเตอร์โดยที่อิลิเมนต์iคือ f (แถว / col i ของเมทริกซ์) tapply(vector, grouping, f): output …
1040 r  lapply  sapply  tapply  r-faq 

20
ปล่อยคอลัมน์กรอบข้อมูลตามชื่อ
ฉันมีคอลัมน์จำนวนหนึ่งที่ฉันต้องการลบออกจาก data frame ฉันรู้ว่าเราสามารถลบพวกเขาทีละอย่างโดยใช้สิ่งที่ชอบ: df$x <- NULL แต่ฉันหวังว่าจะทำสิ่งนี้ด้วยคำสั่งน้อยลง นอกจากนี้ฉันรู้ว่าฉันสามารถวางคอลัมน์โดยใช้การทำดัชนีจำนวนเต็มเช่นนี้: df <- df[ -c(1, 3:6, 12) ] แต่ฉันกังวลว่าตำแหน่งสัมพัทธ์ของตัวแปรของฉันอาจเปลี่ยนแปลงได้ เมื่อพิจารณาว่า R ทรงพลังเพียงใดฉันคิดว่าอาจมีวิธีที่ดีกว่าการปล่อยแต่ละคอลัมน์ทีละหนึ่ง
874 r  dataframe  r-faq 

16
ลบแถวที่มี NA ทั้งหมดหรือบางส่วน (ค่าที่หายไป) ใน data.frame
ฉันต้องการลบบรรทัดในกรอบข้อมูลนี้ที่: ก) มีNAหลายคอลัมน์ทั้งหมด ด้านล่างเป็นกรอบข้อมูลตัวอย่างของฉัน gene hsap mmul mmus rnor cfam 1 ENSG00000208234 0 NA NA NA NA 2 ENSG00000199674 0 2 2 2 2 3 ENSG00000221622 0 NA NA NA NA 4 ENSG00000207604 0 NA NA 1 2 5 ENSG00000207431 0 NA NA NA NA 6 ENSG00000221312 0 1 2 …

7
อะไรคือความแตกต่างระหว่าง“ =” และ“ <-” ผู้ประกอบการที่ได้รับมอบหมายใน R?
อะไรคือความแตกต่างระหว่างผู้ประกอบการที่ได้รับมอบหมาย=และ&lt;-ใน R? ฉันรู้ว่าผู้ประกอบการแตกต่างกันเล็กน้อยตามตัวอย่างนี้แสดงให้เห็น x &lt;- y &lt;- 5 x = y = 5 x = y &lt;- 5 x &lt;- y = 5 # Error in (x &lt;- y) = 5 : could not find function "&lt;-&lt;-" แต่นี่คือความแตกต่างเท่านั้น?

9
วิธีการแปลงปัจจัยให้เป็นจำนวนเต็ม \ ตัวเลขโดยไม่สูญเสียข้อมูล?
เมื่อฉันแปลงปัจจัยเป็นตัวเลขหรือจำนวนเต็มฉันจะได้รับรหัสระดับพื้นฐานไม่ใช่ค่าเป็นตัวเลข f &lt;- factor(sample(runif(5), 20, replace = TRUE)) ## [1] 0.0248644019011408 0.0248644019011408 0.179684827337041 ## [4] 0.0284090070053935 0.363644931698218 0.363644931698218 ## [7] 0.179684827337041 0.249704354675487 0.249704354675487 ## [10] 0.0248644019011408 0.249704354675487 0.0284090070053935 ## [13] 0.179684827337041 0.0248644019011408 0.179684827337041 ## [16] 0.363644931698218 0.249704354675487 0.363644931698218 ## [19] 0.179684827337041 0.0284090070053935 ## 5 Levels: 0.0248644019011408 0.0284090070053935 ... 0.363644931698218 as.numeric(f) …
599 r  casting  r-faq 

16
พล็อตกราฟสองกราฟในเนื้อเดียวกันใน R
ฉันต้องการลงจุด y1 และ y2 ในพล็อตเดียวกัน x &lt;- seq(-2, 2, 0.05) y1 &lt;- pnorm(x) y2 &lt;- pnorm(x, 1, 1) plot(x, y1, type = "l", col = "red") plot(x, y2, type = "l", col = "green") แต่เมื่อฉันทำเช่นนี้พวกเขาไม่ได้วางแผนในพล็อตเดียวกันด้วยกัน ใน Matlab สามารถทำได้hold onแต่ไม่มีใครรู้วิธีการทำใน R?
571 r  plot  ggplot2  r-faq 

18
ฉันควรจัดการกับคำเตือน“ แพ็คเกจ 'xxx' ไม่พร้อมใช้งาน (สำหรับรุ่น R xyz)”
ฉันพยายามติดตั้งแพ็คเกจโดยใช้ install.packages("foobarbaz") แต่ได้รับคำเตือน Warning message: package 'foobarbaz' is not available (for R version x.y.z) ทำไม R ไม่คิดว่ามีแพ็คเกจนี้ ดูคำถามเหล่านี้ที่อ้างถึงอินสแตนซ์เฉพาะของปัญหานี้: แพ็คเกจของฉันใช้งานไม่ได้กับ แพ็คเกจR 2.15.2 'Rbbg' ไม่พร้อมใช้งาน (สำหรับรุ่น R 2.15.2) แพ็คเกจไม่พร้อมใช้งาน (สำหรับรุ่น R 2.15.2) แพ็คเกจ doMC ไม่พร้อมใช้งานสำหรับคำเตือน R เวอร์ชัน 3.0.0 ใน install.packages การ พึ่งพา 'Rglpk' ไม่พร้อมใช้งานสำหรับแพ็คเกจ 'fPortfolio' จะทำอย่างไรเมื่อแพ็คเกจไม่พร้อมใช้งานสำหรับรุ่น R ของเรา แพ็คเกจ bigvis สำหรับ R …

10
ฉันจะดูซอร์สโค้ดของฟังก์ชั่นได้อย่างไร
ฉันต้องการดูซอร์สโค้ดสำหรับฟังก์ชั่นเพื่อดูว่ามันทำงานอย่างไร ฉันรู้ว่าฉันสามารถพิมพ์ฟังก์ชั่นได้โดยพิมพ์ชื่อที่พรอมต์: &gt; t function (x) UseMethod("t") &lt;bytecode: 0x2332948&gt; &lt;environment: namespace:base&gt; ในกรณีนี้UseMethod("t")หมายความว่าอย่างไร ฉันจะค้นหาซอร์สโค้ดที่ใช้งานจริงได้t(1:10)อย่างไรตัวอย่างเช่น: มีความแตกต่างระหว่างเมื่อฉันเห็นUseMethodและเมื่อฉันเห็นstandardGenericและshowMethodsเช่นเดียวกับwith? &gt; with standardGeneric for "with" defined from package "base" function (data, expr, ...) standardGeneric("with") &lt;bytecode: 0x102fb3fc0&gt; &lt;environment: 0x102fab988&gt; Methods may be defined for arguments: data Use showMethods("with") for currently available ones. ในกรณีอื่น ๆ ฉันเห็นว่ามีการเรียกใช้ฟังก์ชัน R แต่ฉันไม่สามารถหารหัสแหล่งที่มาสำหรับฟังก์ชั่นเหล่านั้นได้ …
551 r  function  r-faq 

14
วางระดับตัวคูณในเฟรมข้อมูลที่ถูกเซตย่อย
factorฉันมีกรอบข้อมูลที่มี เมื่อฉันสร้างเซตย่อยของ dataframe นี้โดยใช้subsetหรือฟังก์ชั่นการทำดัชนีอื่นเฟรมข้อมูลใหม่จะถูกสร้างขึ้น อย่างไรก็ตามfactorตัวแปรยังคงรักษาระดับเดิมทั้งหมดแม้เมื่อ / หากไม่มีอยู่ใน dataframe ใหม่ สิ่งนี้ทำให้เกิดปัญหาเมื่อทำการพล็อตแบบเหลี่ยมเพชรพลอยหรือใช้ฟังก์ชั่นที่ขึ้นอยู่กับระดับปัจจัย วิธีรวบรัดที่สุดในการลบระดับออกจากปัจจัยในดาต้าเฟรมใหม่คืออะไร นี่คือตัวอย่าง: df &lt;- data.frame(letters=letters[1:5], numbers=seq(1:5)) levels(df$letters) ## [1] "a" "b" "c" "d" "e" subdf &lt;- subset(df, numbers &lt;= 3) ## letters numbers ## 1 a 1 ## 2 b 2 ## 3 c 3 # all levels are still …
543 r  dataframe  r-factor  r-faq 

11
วิธีการยกเลิกการโหลดแพคเกจโดยไม่ต้องรีสตาร์ท R
ฉันต้องการยกเลิกการโหลดแพคเกจโดยไม่ต้องรีสตาร์ท R (ส่วนใหญ่เป็นเพราะการรีสตาร์ท R เนื่องจากฉันลองใช้แพ็คเกจที่ขัดแย้งกันต่าง ๆ กำลังทำให้หงุดหงิด แต่สิ่งนี้สามารถใช้ในโปรแกรมเพื่อใช้ฟังก์ชันหนึ่งและอีกอัน - แม้ว่า namespace การอ้างอิงอาจเป็นแนวคิดที่ดีกว่าสำหรับการใช้งานนั้น) ?library ไม่แสดงตัวเลือกที่จะยกเลิกการโหลดแพ็คเกจ มีข้อเสนอแนะที่detachสามารถยกเลิกการโหลดแพคเกจ แต่ต่อไปนี้ทั้งสองล้มเหลว: detach(vegan) ข้อผิดพลาดในdetach(vegan): nameอาร์กิวเมนต์ไม่ถูกต้อง detach("vegan") ข้อผิดพลาดในdetach("vegan"): nameอาร์กิวเมนต์ไม่ถูกต้อง ดังนั้นฉันจะยกเลิกการโหลดแพ็คเกจได้อย่างไร
540 r  package  r-faq 

12
ความแตกต่างระหว่างวงเล็บ [] และวงเล็บคู่ [[]] สำหรับการเข้าถึงองค์ประกอบของรายการหรือ dataframe
R มีสองวิธีที่แตกต่างกันสำหรับการเข้าถึงองค์ประกอบของรายการหรือ data.frame ที่: และ[][[]] อะไรคือความแตกต่างระหว่างสองสิ่งในสถานการณ์ที่ฉันควรใช้สถานการณ์หนึ่งกับอีกสถานการณ์หนึ่ง
521 r  list  dataframe  extract  r-faq 


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.