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

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

4
วิธีหลีกเลี่ยงคำเตือนเมื่อแนะนำ NAs โดยการบีบบังคับ
โดยทั่วไปฉันชอบเขียนโค้ด R เพื่อที่จะไม่ได้รับคำเตือน แต่ฉันไม่รู้วิธีหลีกเลี่ยงการรับคำเตือนเมื่อใช้as.numericเพื่อแปลงเวกเตอร์อักขระ ตัวอย่างเช่น: x <- as.numeric(c("1", "2", "X")) จะให้คำเตือนเพราะแนะนำ NAs โดยการบีบบังคับ ฉันต้องการให้ NAs แนะนำโดยการบีบบังคับ - มีวิธีที่จะบอกได้ไหมว่า "ใช่นี่คือสิ่งที่ฉันต้องการทำ" หรือฉันควรอยู่กับคำเตือน? หรือฉันควรใช้ฟังก์ชันอื่นสำหรับงานนี้
124 r  parsing  casting  na 

3
วิธีสร้างกราฟิกด้วยพื้นหลังโปร่งใสใน R โดยใช้ ggplot2
ฉันต้องการส่งออกกราฟิก ggplot2 จากไฟล์ R เป็น PNG ที่มีพื้นหลังโปร่งใส ทุกอย่างใช้ได้กับกราฟิก R พื้นฐาน แต่ไม่มีความโปร่งใสกับ ggplot2: d <- rnorm(100) #generating random data #this returns transparent png png('tr_tst1.png',width=300,height=300,units="px",bg = "transparent") boxplot(d) dev.off() df <- data.frame(y=d,x=1) p <- ggplot(df) + stat_boxplot(aes(x = x,y=y)) p <- p + opts( panel.background = theme_rect(fill = "transparent",colour = NA), # …


12
data.frame แถวไปยังรายการ
ฉันมี data.frame ซึ่งฉันต้องการแปลงเป็นรายการตามแถวซึ่งหมายความว่าแต่ละแถวจะสอดคล้องกับองค์ประกอบรายการของมันเอง กล่าวอีกนัยหนึ่งคือฉันต้องการรายการที่มีความยาวเท่าที่ data.frame มีแถว จนถึงตอนนี้ฉันได้แก้ไขปัญหานี้แล้วในลักษณะต่อไปนี้ แต่ฉันสงสัยว่ามีวิธีที่ดีกว่าในการแก้ไขปัญหานี้หรือไม่ xy.df <- data.frame(x = runif(10), y = runif(10)) # pre-allocate a list and fill it with a loop xy.list <- vector("list", nrow(xy.df)) for (i in 1:nrow(xy.df)) { xy.list[[i]] <- xy.df[i,] }
123 list  r  dataframe 

3
เหตุใด X [Y] การรวม data.tables จึงไม่อนุญาตให้รวมภายนอกแบบเต็มหรือการรวมด้านซ้าย
นี่เป็นคำถามเชิงปรัชญาเกี่ยวกับ data.table join syntax ฉันพบการใช้งาน data.tables มากขึ้นเรื่อย ๆ แต่ยังคงเรียนรู้ ... รูปแบบการเข้าร่วมX[Y]สำหรับ data.tables นั้นกระชับสะดวกและมีประสิทธิภาพ แต่เท่าที่ฉันบอกได้มันรองรับเฉพาะการรวมภายในและการรวมภายนอกที่ถูกต้องเท่านั้น ในการรับการรวมด้านซ้ายหรือแบบเต็มฉันต้องใช้merge: X[Y, nomatch = NA] - แถวทั้งหมดใน Y - การรวมภายนอกด้านขวา (ค่าเริ่มต้น) X[Y, nomatch = 0] - เฉพาะแถวที่มีการจับคู่ทั้ง X และ Y - การเข้าร่วมภายใน merge(X, Y, all = TRUE) - ทุกแถวจากทั้ง X และ Y - การรวมภายนอกแบบเต็ม merge(X, Y, …
123 r  join  data.table 

18
ข้อผิดพลาดในการโหลด rJava ใน RStudio / R หลังจาก "อัปเกรด" เป็น OSX Yosemite
ฉันเพิ่ง "อัปเกรด" จาก OSX Mountain Lion เป็น Yosemite และจาก R 3.1.3 เป็น 3.2 ทันทีหลังจากการอัพเกรดเมื่อฉันเปิด R หรือ RStudio ฉันได้รับข้อความป๊อปอัปแจ้งว่าฉันต้องติดตั้ง Java 6 นอกจากนี้การโหลดrJavaหรือแพ็คเกจใด ๆ ที่ขึ้นอยู่กับ rJava (เช่นxlsx) ทำให้ RStudio ขัดข้อง (R ก็พัง เมื่อฉันลองสิ่งนี้โดยเปิดR.appโดยตรง) หลังจากลองแก้ไขสองสามอย่างที่พบใน Stack Overflow และที่อื่น ๆ (รายละเอียดเพิ่มเติมด้านล่าง) ฉันอยู่ในจุดที่การโหลดrJavaหรือแพ็คเกจใด ๆ ที่ขึ้นอยู่กับว่าrJavaไม่ทำให้ R ขัดข้องอีกต่อไป แต่ส่งผลให้เกิดข้อผิดพลาดต่อไปนี้: library(rJava) Error : .onLoad failed in loadNamespace() …

8
ใช้ R เพื่อดาวน์โหลดไฟล์ข้อมูลที่บีบอัดแยกและนำเข้าข้อมูล
@EZGraphs บน Twitter เขียนว่า "csvs ออนไลน์จำนวนมากถูกบีบอัดมีวิธีดาวน์โหลดคลายซิปไฟล์ที่เก็บถาวรและโหลดข้อมูลลงใน data.frame โดยใช้ R หรือไม่ #Rstats" วันนี้ฉันก็พยายามทำเช่นกัน แต่สุดท้ายก็แค่ดาวน์โหลดไฟล์ zip ด้วยตนเอง ฉันลองทำสิ่งที่ชอบ: fileName <- "http://www.newcl.org/data/zipfiles/a1.zip" con1 <- unz(fileName, filename="a1.dat", open = "r") แต่ฉันรู้สึกราวกับว่าฉันอยู่ห่างไกล ความคิดใด ๆ ?
122 r  zip  connection 

6
ฉันจะลงจุดด้วยแกน y 2 แกนที่ต่างกันได้อย่างไร
ฉันต้องการซ้อนพล็อตการกระจายสองจุดใน R เพื่อให้แต่ละชุดของจุดมีแกน y ของตัวเอง (ต่างกัน) (กล่าวคือในตำแหน่ง 2 และ 4 ในรูป) แต่จุดจะปรากฏซ้อนทับในรูปเดียวกัน เป็นไปได้ไหมที่จะทำเช่นนี้plot? แก้ไขโค้ดตัวอย่างที่แสดงปัญหา # example code for SO question y1 <- rnorm(10, 100, 20) y2 <- rnorm(10, 1, 1) x <- 1:10 # in this plot y2 is plotted on what is clearly an inappropriate scale plot(y1 ~ x, …
122 r  plot  yaxis 

8
แทนที่ค่าในกรอบข้อมูลตามคำสั่งเงื่อนไข ("ถ้า")
ในกรอบ R ข้อมูลรหัสสำหรับด้านล่างผมอยากจะเปลี่ยนทุกครั้งที่ปรากฏขึ้นพร้อมกับ B b junk <- data.frame(x <- rep(LETTERS[1:4], 3), y <- letters[1:12]) colnames(junk) <- c("nm", "val") สิ่งนี้ให้: nm val 1 A a 2 B b 3 C c 4 D d 5 A e 6 B f 7 C g 8 D h 9 A i 10 B …
122 r  recode 

8
เลือกคอลัมน์เฟรมข้อมูลแบบไดนามิกโดยใช้ $ และค่าอักขระ
ฉันมีเวกเตอร์ของชื่อคอลัมน์ที่แตกต่างกันและฉันต้องการให้สามารถวนซ้ำแต่ละคอลัมน์เพื่อแยกคอลัมน์นั้นออกจาก data.frame ตัวอย่างเช่นพิจารณาข้อมูลชุดและบางชื่อตัวแปรที่เก็บไว้ในเวกเตอร์ของตัวละครmtcars colsเมื่อฉันพยายามเลือกตัวแปรจากการmtcarsใช้ชุดย่อยแบบไดนามิกcolsจากงานเหล่านี้ cols <- c("mpg", "cyl", "am") col <- cols[1] col # [1] "mpg" mtcars$col # NULL mtcars$cols[1] # NULL ฉันจะรับสิ่งเหล่านี้กลับค่าเดียวกับ mtcars$mpg นอกจากนี้ฉันจะวนซ้ำคอลัมน์ทั้งหมดcolsเพื่อรับค่าในลูปบางประเภทได้อย่างไร for(x in seq_along(cols)) { value <- mtcars[ order(mtcars$cols[x]), ] }
122 r  dataframe  r-faq 

5
จะสร้างพล็อตความหนาแน่นใน matplotlib ได้อย่างไร?
ใน RI สามารถสร้างผลลัพธ์ที่ต้องการได้โดยทำ: data = c(rep(1.5, 7), rep(2.5, 2), rep(3.5, 8), rep(4.5, 3), rep(5.5, 1), rep(6.5, 8)) plot(density(data, bw=0.5)) ใน python (พร้อม matplotlib) สิ่งที่ใกล้เคียงที่สุดที่ฉันมีคือฮิสโตแกรมง่ายๆ: import matplotlib.pyplot as plt data = [1.5]*7 + [2.5]*2 + [3.5]*8 + [4.5]*3 + [5.5]*1 + [6.5]*8 plt.hist(data, bins=6) plt.show() ฉันลองใช้พารามิเตอร์ normed = True ด้วยแต่ไม่สามารถหาอะไรได้นอกจากพยายามทำให้ gaussian …
122 python  r  numpy  matplotlib  scipy 

6
การใช้ฟังก์ชันกับทุกแถวของตารางโดยใช้ dplyr?
เมื่อทำงานกับplyrฉันมักจะพบว่าการใช้adplyฟังก์ชันสเกลาร์มีประโยชน์ที่ฉันต้องใช้กับแต่ละแถว เช่น data(iris) library(plyr) head( adply(iris, 1, transform , Max.Len= max(Sepal.Length,Petal.Length)) ) Sepal.Length Sepal.Width Petal.Length Petal.Width Species Max.Len 1 5.1 3.5 1.4 0.2 setosa 5.1 2 4.9 3.0 1.4 0.2 setosa 4.9 3 4.7 3.2 1.3 0.2 setosa 4.7 4 4.6 3.1 1.5 0.2 setosa 4.6 5 5.0 3.6 1.4 …
121 r  plyr  dplyr 

7
วิธีผนวกแถวเข้ากับกรอบข้อมูล R
ฉันได้ดู StackOverflow แล้ว แต่ฉันไม่พบวิธีแก้ปัญหาเฉพาะสำหรับปัญหาของฉันซึ่งเกี่ยวข้องกับการต่อท้ายแถวเข้ากับเฟรมข้อมูล R ฉันกำลังเริ่มต้นกรอบข้อมูล 2 คอลัมน์ที่ว่างเปล่าดังนี้ df = data.frame(x = numeric(), y = character()) จากนั้นเป้าหมายของฉันคือการวนซ้ำตามรายการค่าและในการวนซ้ำแต่ละครั้งจะเพิ่มค่าต่อท้ายรายการ ฉันเริ่มต้นด้วยรหัสต่อไปนี้ for (i in 1:10) { df$x = rbind(df$x, i) df$y = rbind(df$y, toString(i)) } ฉันยังพยายามฟังก์ชั่นc, appendและmergeไม่ประสบความสำเร็จ โปรดแจ้งให้เราทราบหากคุณมีข้อเสนอแนะ
121 r  merge  append  dataframe  rows 

8
มีวิธีเปลี่ยนระยะห่างระหว่างรายการในตำนานใน ggplot2 หรือไม่?
มีวิธีเปลี่ยนระยะห่างระหว่างรายการในตำนานใน ggplot2 หรือไม่? ฉันมี legend.position ="top" ซึ่งจะสร้างคำอธิบายแนวนอนโดยอัตโนมัติ อย่างไรก็ตามระยะห่างของรายการใกล้กันมากและฉันสงสัยว่าจะเว้นระยะห่างออกจากกันได้อย่างไร
121 r  ggplot2  legend 

5
การเพิ่มเส้นการถดถอยบน ggplot
ฉันพยายามอย่างมากที่จะเพิ่มเส้นการถดถอยใน ggplot ฉันลองใช้ abline ครั้งแรก แต่ฉันไม่สามารถทำให้มันใช้งานได้ จากนั้นฉันก็ลองสิ่งนี้ ... data = data.frame(x.plot=rep(seq(1,5),10),y.plot=rnorm(50)) ggplot(data,aes(x.plot,y.plot))+stat_summary(fun.data=mean_cl_normal) + geom_smooth(method='lm',formula=data$y.plot~data$x.plot) แต่มันก็ใช้ไม่ได้เช่นกัน

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