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

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

11
วิธีลบค่าผิดปกติออกจากชุดข้อมูล
ฉันมีข้อมูลหลายตัวแปรเกี่ยวกับความงามเทียบกับวัย อายุมีตั้งแต่ 20-40 ช่วง 2 (20, 22, 24 .... 40) และสำหรับการบันทึกข้อมูลแต่ละครั้งจะได้รับอายุและคะแนนความงามตั้งแต่ 1-5 เมื่อฉันทำบ็อกซ์พล็อตของข้อมูลนี้ (อายุในแกน X, การให้คะแนนความงามในแกน Y) มีค่าผิดปกติบางอย่างที่พล็อตอยู่นอกหนวดของแต่ละกล่อง ฉันต้องการลบค่าผิดปกติเหล่านี้ออกจากกรอบข้อมูล แต่ฉันไม่แน่ใจว่า R คำนวณค่าผิดปกติสำหรับพล็อตกล่องอย่างไร ด้านล่างนี้คือตัวอย่างลักษณะข้อมูลของฉัน
101 r  statistics  outliers 

6
กรองสำหรับกรณีที่สมบูรณ์ใน data.frame โดยใช้ dplyr (การลบกรณีที่ชาญฉลาด)
เป็นไปได้ไหมที่จะกรอง data.frame สำหรับกรณีทั้งหมดโดยใช้ dplyr complete.casesด้วยรายการตัวแปรทั้งหมดที่ใช้งานได้แน่นอน แต่นั่นคือ a) verbose เมื่อมีตัวแปรจำนวนมากและ b) เป็นไปไม่ได้เมื่อไม่รู้จักชื่อตัวแปร (เช่นในฟังก์ชันที่ประมวลผล data.frame ใด ๆ ) library(dplyr) df = data.frame( x1 = c(1,2,3,NA), x2 = c(1,2,NA,5) ) df %.% filter(complete.cases(x1,x2))
101 r  dplyr  magrittr 

4
การเลือกแถวของกรอบข้อมูลตามการจับคู่สตริงบางส่วนในคอลัมน์
ฉันต้องการเลือกแถวจากกรอบข้อมูลตามการจับคู่สตริงบางส่วนในคอลัมน์เช่นคอลัมน์ 'x' มีสตริง "hsa" การใช้sqldf- ถ้ามันมีlikeไวยากรณ์ - ฉันจะทำสิ่งที่ชอบ: select * from <> where x like 'hsa'. น่าเสียดายที่sqldfไม่รองรับไวยากรณ์นั้น หรือในทำนองเดียวกัน: selectedRows <- df[ , df$x %like% "hsa-"] ซึ่งแน่นอนไม่ได้ผล ใครช่วยฉันด้วยได้ไหม
101 r  regex  string  match  subset 

4
สรุป dplyr: เทียบเท่ากับ“ .drop = FALSE” เพื่อให้กลุ่มที่มีความยาวเป็นศูนย์ในเอาต์พุต
เมื่อใช้summariseกับplyrของddplyฟังก์ชั่นประเภทที่ว่างเปล่าจะลดลงโดยปริยาย .drop = FALSEคุณสามารถเปลี่ยนพฤติกรรมนี้โดยการเพิ่ม อย่างไรก็ตามสิ่งนี้ใช้ไม่ได้เมื่อใช้summariseกับdplyrไฟล์. มีวิธีอื่นในการเก็บหมวดหมู่ว่างไว้ในผลลัพธ์หรือไม่? นี่คือตัวอย่างข้อมูลปลอม library(dplyr) df = data.frame(a=rep(1:3,4), b=rep(1:2,6)) # Now add an extra level to df$b that has no corresponding value in df$a df$b = factor(df$b, levels=1:3) # Summarise with plyr, keeping categories with a count of zero plyr::ddply(df, "b", summarise, count_a=length(a), .drop=FALSE) b count_a 1 …
101 r  dplyr  plyr  tidyr 

8
วิธีการสุ่ม (หรืออนุญาต) dataframe rowwise และ columnwise?
ฉันมี dataframe (df1) แบบนี้ f1 f2 f3 f4 f5 d1 1 0 1 1 1 d2 1 0 0 1 0 d3 0 0 0 1 1 d4 0 1 0 0 1 คอลัมน์ d1 ... d4 คือ rowname แถว f1 ... f5 คือชื่อคอลัมน์ ในการทำตัวอย่าง (df1) ฉันได้รับดาต้าเฟรมใหม่ที่มีจำนวน 1 เท่ากับ df1 …
101 r  random  permutation 

2
แทนที่แกน X ด้วยค่าของตัวเอง
ฉันมีคำถามเกี่ยวกับแผนคำสั่ง () มีวิธีกำจัดแกน x จนหมดแล้วแทนที่ด้วยค่าของตัวเองหรือไม่? ฉันรู้ว่าฉันสามารถกำจัดแกนได้โดยการทำ plot(x,y, xaxt = 'n') จากนั้นเพิ่มแกนด้วย axis(side = 1 etc.) อย่างไรก็ตามเมื่อฉันเพิ่มแกนเห็นได้ชัดว่ามันยังคงอ้างถึงข้อมูลที่ลงจุดเป็น 'x' ฉันต้องการพล็อต 'y'-values ​​เท่านั้นและเพิ่มแกน x ของฉันเองในแง่ของการ "วาด" แกน x พร้อมระบุค่าของตัวเอง มีวิธีใดบ้างที่จะทำเช่นนั้น? พื้นหลังของคำถามนี้คือกรอบข้อมูลทั้งสองของฉันมีความยาวแตกต่างกันดังนั้นฉันจึงไม่สามารถพล็อตได้
101 r  plot 

3
ฉันจะเปลี่ยนสีพื้นหลังของพล็อตที่สร้างด้วย ggplot2 ได้อย่างไร
ตามค่าเริ่มต้น ggplot2 จะสร้างพล็อตที่มีพื้นหลังสีเทา ฉันจะเปลี่ยนสีพื้นหลังของพล็อตได้อย่างไร? ตัวอย่างเช่นพล็อตที่สร้างโดยรหัสต่อไปนี้: library(ggplot2) myplot<-ggplot(data=data.frame(a=c(1,2,3), b=c(2,3,4)), aes(x=a, y=b)) + geom_line() myplot
101 r  ggplot2 


3
ฉันจะจัดการข้อความแถบของแปลง facet_grid ได้อย่างไร
ฉันสงสัยว่าฉันจะจัดการขนาดของข้อความแถบในแปลงเหลี่ยมเพชรพลอยได้อย่างไร คำถามของฉันคล้ายกับคำถามเกี่ยวกับชื่อเรื่องแต่ฉันกังวลเป็นพิเศษกับการจัดการไม่ใช่ชื่อเรื่อง แต่เป็นข้อความที่ปรากฏในชื่อแง่มุม (strip_h) ตัวอย่างเช่นพิจารณาชุดข้อมูล mpg library(ggplot2) qplot(hwy, cty, data = mpg) + facet_grid( . ~ manufacturer) ส่งผลให้การส่งออกผลิตชื่อแง่มุมบางส่วนที่ไม่พอดีกับแถบ ฉันคิดว่าต้องมีวิธีใช้gridจัดการกับแถบข้อความ แต่ฉันยังเป็นมือใหม่และไม่แน่ใจจากgridภาคผนวกในหนังสือของ Hadleyว่าต้องทำอย่างไร นอกจากนี้ฉันกลัวว่าถ้าฉันทำผิดมันจะทำให้เครื่องซักผ้าของฉันพังเพราะฉันเชื่อว่าเทคโนโลยีทั้งหมดเชื่อมต่อผ่าน The Force :-( ขอบคุณมากล่วงหน้า
100 r  ggplot2 


10
วางหลายคอลัมน์เข้าด้วยกัน
ฉันมีคอลัมน์จำนวนหนึ่งในดาต้าเฟรมที่ฉันต้องการวางเข้าด้วยกัน (คั่นด้วย "-") ดังนี้: data <- data.frame('a' = 1:3, 'b' = c('a','b','c'), 'c' = c('d', 'e', 'f'), 'd' = c('g', 'h', 'i')) i.e. a b c d 1 a d g 2 b e h 3 c f i ที่ฉันอยากจะเป็น: a x 1 a-d-g 2 b-e-h 3 c-f-i โดยปกติฉันสามารถทำได้ด้วย: within(data, …
100 r  paste  r-faq 

8
สำหรับแต่ละแถวส่งคืนชื่อคอลัมน์ที่มีค่ามากที่สุด
ฉันมีบัญชีรายชื่อพนักงานและฉันต้องการทราบว่าพวกเขาอยู่ในแผนกใดบ่อยที่สุด เป็นเรื่องเล็กน้อยที่จะจัดตารางรหัสพนักงานเทียบกับชื่อแผนก แต่จะยากกว่าที่จะส่งคืนชื่อแผนกแทนที่จะเป็นจำนวนบัญชีรายชื่อจากตารางความถี่ ตัวอย่างง่ายๆด้านล่าง (ชื่อคอลัมน์ = แผนกชื่อแถว = รหัสพนักงาน) DF <- matrix(sample(1:9,9),ncol=3,nrow=3) DF <- as.data.frame.matrix(DF) > DF V1 V2 V3 1 2 7 9 2 8 3 6 3 1 5 4 ตอนนี้ฉันจะได้รับ > DF2 RE 1 V3 2 V1 3 V2
100 r 

4
ggplot2 เก็บระดับ barplot ที่ไม่ได้ใช้
ฉันต้องการพล็อตระดับที่ไม่ได้ใช้ (นั่นคือระดับที่นับเป็น 0) ในพล็อตบาร์ของฉันอย่างไรก็ตามระดับที่ไม่ได้ใช้จะหลุดออกไปและฉันไม่สามารถหาวิธีรักษาได้ df <- data.frame(type=c("A", "A", "A", "B", "B"), group=rep("group1", 5)) df$type <- factor(df$type, levels=c("A","B", "C")) ggplot(df, aes(x=group, fill=type)) + geom_bar() ในตัวอย่างข้างต้นฉันต้องการเห็น C พล็อตด้วยจำนวน 0 แต่มันขาดไปโดยสิ้นเชิง ... ขอบคุณสำหรับความช่วยเหลือใด ๆ Ulrik แก้ไข: นี่คือสิ่งที่ฉันต้องการ df <- data.frame(type=c("A", "A", "A", "B", "B"), group=rep("group1", 5)) df1 <- data.frame(type=c("A", "A", "A", "B", "B", …
100 r  ggplot2  legend  levels 

5
นับจำนวนวัตถุในรายการ [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน3 ปีที่ผ่านมา ปรับปรุงคำถามนี้ R ฟังก์ชั่นที่จะส่งคืนจำนวนรายการในรายการ?
99 list  r  count 

6
จะตั้งชื่อตัวแปรได้อย่างไร?
สามารถสร้างชื่อตัวแปรใหม่ได้ทันทีหรือไม่? ฉันต้องการอ่าน data frames จากรายการไปยังตัวแปรใหม่พร้อมตัวเลขต่อท้าย บางอย่างเช่น orca1, orca2, orca3 ... ถ้าลองของชอบ paste("orca",i,sep="")=list_name[[i]] ฉันได้รับข้อผิดพลาดนี้ target of assignment expands to non-language object มีวิธีอื่นอีกไหม
99 r  assign  r-faq 

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