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

R เป็นภาษาการเขียนโปรแกรมแบบโอเพนซอร์สและสภาพแวดล้อมซอฟต์แวร์สำหรับการคำนวณทางสถิติชีวสารสนเทศศาสตร์การสร้างภาพและการคำนวณทั่วไป โปรดให้ตัวอย่างที่น้อยที่สุดและทำซ้ำได้พร้อมกับผลลัพธ์ที่ต้องการ ใช้ `dput ()` สำหรับข้อมูลและระบุแพ็คเกจที่ไม่ใช่ฐานทั้งหมดด้วยการเรียก `library ()` อย่าฝังรูปภาพสำหรับข้อมูลหรือรหัสให้ใช้บล็อกรหัสเยื้องแทน สำหรับคำถามที่เกี่ยวข้องกับสถิติให้ใช้ https://stats.stackexchange.com

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 …

3
data.table vs dplyr: คนหนึ่งทำสิ่งที่ดีไม่ได้หรือไม่ดี?
ภาพรวม ฉันค่อนข้างคุ้นเคยกับไม่มากด้วยdata.table dplyrฉันได้อ่านdplyrบทความสั้น ๆและตัวอย่างที่ผุดขึ้นมาบน SO และจนถึงตอนนี้ข้อสรุปของฉันก็คือ: data.tableและdplyrเทียบเคียงได้กับความเร็วยกเว้นเมื่อมีหลายกลุ่ม (เช่น> 10-100K) และในบางกรณี (ดูมาตรฐานด้านล่าง) dplyr มีไวยากรณ์ที่เข้าถึงได้มากขึ้น dplyr บทคัดย่อ (หรือจะ) ปฏิสัมพันธ์ DB ที่มีศักยภาพ มีความแตกต่างการทำงานเล็กน้อย (ดู "ตัวอย่าง / การใช้งาน" ด้านล่าง) ในใจของฉัน 2. ไม่ได้รับน้ำหนักมากเพราะฉันค่อนข้างคุ้นเคยกับมันdata.tableแต่ฉันเข้าใจว่าสำหรับผู้ใช้ที่เพิ่งเริ่มใช้ทั้งสองจะเป็นปัจจัยสำคัญ data.tableฉันต้องการที่จะหลีกเลี่ยงการโต้แย้งเกี่ยวกับการที่สามารถใช้งานง่ายมากขึ้นเป็นที่ไม่เกี่ยวข้องสำหรับคำถามที่เฉพาะเจาะจงของฉันถามจากมุมมองของคนที่คุ้นเคยกับ ฉันยังต้องการหลีกเลี่ยงการอภิปรายเกี่ยวกับวิธีการที่ "ใช้งานง่ายมากขึ้น" นำไปสู่การวิเคราะห์ที่รวดเร็วขึ้น (แน่นอนจริง แต่อีกครั้งไม่ใช่สิ่งที่ฉันสนใจมากที่สุดที่นี่) คำถาม สิ่งที่ฉันอยากรู้คือ: มีงานการวิเคราะห์ที่ง่ายกว่าในการเขียนโค้ดด้วยแพ็คเกจหนึ่งหรืออีกแพคเกจสำหรับผู้ที่คุ้นเคยกับแพ็คเกจ (เช่นการกดแป้นบางอย่างร่วมกับการใช้ระดับ esotericism ที่ต้องการ มีงานวิเคราะห์ที่ดำเนินการอย่างมีนัยสำคัญ (เช่นมากกว่า 2x) มีประสิทธิภาพมากกว่าในแพ็คเกจหนึ่งเทียบกับแพ็คเกจอื่น หนึ่งคำถามดังนั้นเมื่อเร็ว ๆ นี้มีฉันคิดเกี่ยวกับเรื่องนี้มากขึ้นอีกนิดเพราะจนถึงจุดที่ผมไม่คิดว่าจะมีมากเกินกว่าสิ่งที่ฉันสามารถทำได้ในdplyr data.tableนี่คือdplyrวิธีแก้ปัญหา (ข้อมูลเมื่อสิ้นสุด Q): …
758 r  data.table  dplyr 


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;-" แต่นี่คือความแตกต่างเท่านั้น?

7
เราจะสร้างกราฟสไตล์ xkcd ได้อย่างไร?
เห็นได้ชัดว่าชาวบ้านได้คิดวิธีการที่จะทำให้xkcdกราฟสไตล์ใน Mathematicaและในน้ำยาง เราสามารถทำได้ใน R หรือไม่? Ggplot2-ERS? geom_xkcd และ / หรือ theme_xkcd? ฉันเดาในกราฟิกฐาน, par (xkcd = TRUE)? ฉันต้องทำอย่างไร? ในฐานะที่เป็นแทงครั้งแรก (และแสดงให้เห็นอย่างสง่างามมากขึ้นด้านล่าง) ใน ggplot2 การเพิ่มอาร์กิวเมนต์กระวนกระวายใจไปยังบรรทัดทำให้ดูดีขึ้น ดังนั้น - ggplot(mapping=aes(x=seq(1,10,.1), y=seq(1,10,.1))) + geom_line(position="jitter", color="red", size=2) + theme_bw() มันทำให้เป็นตัวอย่างที่ดี - แต่แกนและฟอนต์นั้นดูซับซ้อนกว่า แม้ว่าแบบอักษรจะได้รับการแก้ไข (ด้านล่าง) แม้ว่า วิธีเดียวที่จะจัดการกับขวานเพื่อล้างพวกมันออกและดึงพวกเขาด้วยมือ? มีวิธีแก้ปัญหาที่สง่างามกว่านี้ไหม? โดยเฉพาะอย่างยิ่งใน ggplot2 สามารถแก้ไข element_line ในระบบชุดรูปแบบใหม่เพื่อโต้แย้งอาร์กิวเมนต์ที่มีลักษณะเหมือนกระวนกระวายใจได้หรือไม่?
697 r  ggplot2  plot 

8
การหมุนและการเว้นวรรคฉลากแกนใน ggplot2
ฉันมีพล็อตที่แกน x เป็นปัจจัยที่มีฉลากยาว แม้ว่าตอนนี้อาจไม่ใช่การสร้างภาพในอุดมคติ แต่ตอนนี้ฉันต้องการหมุนป้ายกำกับเหล่านี้ให้เป็นแนวตั้ง ฉันพบส่วนนี้ด้วยโค้ดด้านล่าง แต่อย่างที่คุณเห็นป้ายกำกับจะไม่ปรากฏให้เห็นโดยสิ้นเชิง data(diamonds) diamonds$cut &lt;- paste("Super Dee-Duper",as.character(diamonds$cut)) q &lt;- qplot(cut,carat,data=diamonds,geom="boxplot") q + opts(axis.text.x=theme_text(angle=-90))
669 r  ggplot2  labels 

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 …

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