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

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

5
ข้อผิดพลาดใน <my code>: ออบเจ็กต์ประเภท 'closed' ไม่สามารถเซ็ตย่อยได้
ในที่สุดฉันก็สามารถหารหัสสำหรับการขูดของฉันได้ ดูเหมือนว่าจะทำงานได้ดีและทันใดนั้นเมื่อฉันวิ่งอีกครั้งฉันได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้: Error in url[i] = paste("http://en.wikipedia.org/wiki/", gsub(" ", "_", : object of type 'closure' is not subsettable ฉันไม่แน่ใจว่าทำไมฉันไม่เปลี่ยนอะไรเลยในรหัส กรุณาแนะนำ. library(XML) library(plyr) names &lt;- c("George Clooney", "Kevin Costner", "George Bush", "Amar Shanghavi") for(i in 1:length(names)) { url[i] = paste('http://en.wikipedia.org/wiki/', gsub(" ","_", names[i]) , sep="") # some parsing code }
110 r  r-faq 

15
วิธีเปลี่ยนการตั้งค่าภาษาใน R
ข้อความแสดงข้อผิดพลาดของฉันแสดงเป็นภาษาฝรั่งเศส ฉันจะเปลี่ยนการตั้งค่าภาษาของระบบเพื่อให้ข้อความแสดงข้อผิดพลาดแสดงเป็นภาษาอังกฤษได้อย่างไร?
110 r 

4
ฉันจะเปลี่ยนตัวเลขแกน Y เป็นเปอร์เซ็นต์ใน barplot ได้อย่างไร
เราจะเปลี่ยนแกน y เป็นเปอร์เซ็นต์เหมือนรูปได้อย่างไร? ฉันเปลี่ยนช่วงแกน y ได้ แต่ไม่สามารถเปลี่ยนเป็นเปอร์เซ็นต์ได้
110 r  ggplot2  bar-chart 

6
วิธีใช้ตัวแปรเพื่อระบุชื่อคอลัมน์ใน ggplot
ฉันมีคำสั่ง ggplot ggplot( rates.by.groups, aes(x=name, y=rate, colour=majr, group=majr) ) ภายในฟังก์ชัน แต่ฉันต้องการใช้พารามิเตอร์ของฟังก์ชันเพื่อเลือกคอลัมน์เพื่อใช้เป็นสีและกลุ่ม คือฉันต้องการอะไรแบบนี้ f &lt;- function( column ) { ... ggplot( rates.by.groups, aes(x=name, y=rate, colour= ??? , group=??? ) ) } เพื่อให้คอลัมน์ที่ใช้ใน ggplot ถูกกำหนดโดยพารามิเตอร์ เช่นสำหรับ f ("majr") เราได้รับผลของ ggplot( rates.by.groups, aes(x=name, y=rate, colour=majr, group=majr) ) แต่สำหรับ f ("เพศ") เราได้รับผลของ ggplot( rates.by.groups, …
110 r  ggplot2  r-faq 

3
วิธีรับ geom_vline แนวตั้งไปยังแกน x ของวันที่ของชั้นเรียน
แม้ว่าฉันจะพบการโพสต์ของนายอำเภอในกลุ่ม Google บนPOSIXctและgeom_vlineฉันไม่สามารถได้รับมันกระทำ ฉันมีอนุกรมเวลาและต้องการวาดเส้นแนวตั้งสำหรับปี 1998, 2005 และ 2010 เป็นต้น ฉันลองใช้ggplotและqplotไวยากรณ์แล้ว แต่ฉันก็ยังไม่เห็นเส้นแนวตั้งเลยหรือเส้นแนวตั้งถูกวาดที่เส้นตารางแนวตั้งแรกและทั้งชุดจะเลื่อนไปทางขวาค่อนข้างแปลก gg &lt;- ggplot(data=mydata,aes(y=somevalues,x=datefield,color=category)) + layer(geom="line") gg + geom_vline(xintercept=mydata$datefield[120],linetype=4) # returns just the time series plot I had before, # interestingly the legend contains dotted vertical lines ฟิลด์วันของฉันมีรูปแบบ "1993/07/01" Dateและมีระดับ
109 r  date  ggplot2  time-series 

6
แยกสตริงที่คั่นด้วยจุลภาคในคอลัมน์เป็นแถวแยกกัน
ฉันมีกรอบข้อมูลดังนี้: data.frame(director = c("Aaron Blaise,Bob Walker", "Akira Kurosawa", "Alan J. Pakula", "Alan Parker", "Alejandro Amenabar", "Alejandro Gonzalez Inarritu", "Alejandro Gonzalez Inarritu,Benicio Del Toro", "Alejandro González Iñárritu", "Alex Proyas", "Alexander Hall", "Alfonso Cuaron", "Alfred Hitchcock", "Anatole Litvak", "Andrew Adamson,Marilyn Fox", "Andrew Dominik", "Andrew Stanton", "Andrew Stanton,Lee Unkrich", "Angelina Jolie,John Stevenson", "Anne …
109 r  string  split  r-faq 


2
ggplot2 ตำนานด้านล่างและแนวนอน
ฉันจะย้ายคำอธิบาย ggplot2 ไปที่ด้านล่างสุดของพล็อตและเปิดในแนวนอนได้อย่างไร โค้ดตัวอย่าง: library(reshape2) # for melt df &lt;- melt(outer(1:4, 1:4), varnames = c("X1", "X2")) p1 &lt;- ggplot(df, aes(X1, X2)) + geom_tile(aes(fill = value)) p1 + scale_fill_continuous(guide = guide_legend()) ผลลัพธ์ที่ต้องการ (โดยประมาณ):
109 r  ggplot2 

5
รวบรวมคอลัมน์หลายชุด
ฉันมีข้อมูลจากแบบสำรวจออนไลน์ที่ผู้ตอบตอบคำถาม 1-3 ครั้ง ซอฟแวร์การสำรวจ (Qualtrics) บันทึกข้อมูลนี้ในหลายคอลัมน์ที่เป็น Q3.2 ในการสำรวจจะมีคอลัมน์Q3.2.1., Q3.2.2.และQ3.2.3.: df &lt;- data.frame( id = 1:10, time = as.Date('2009-01-01') + 0:9, Q3.2.1. = rnorm(10, 0, 1), Q3.2.2. = rnorm(10, 0, 1), Q3.2.3. = rnorm(10, 0, 1), Q3.3.1. = rnorm(10, 0, 1), Q3.3.2. = rnorm(10, 0, 1), Q3.3.3. = rnorm(10, 0, 1) …
109 r  reshape  dplyr  qualtrics  tidyr 

6
เกิดข้อผิดพลาดใน plot.new (): ระยะขอบของรูปใหญ่เกินไป, Scatter plot
ฉันได้ดูคำถามต่างๆเพื่อหาวิธีแก้ปัญหาและฉันได้ลองทำตามคำแนะนำแล้ว แต่ฉันไม่พบวิธีแก้ปัญหาที่จะทำให้มันใช้งานได้ ทุกครั้งที่ฉันต้องการเรียกใช้รหัสนี้มักจะพูดว่า: ข้อผิดพลาดใน plot.new (): ระยะขอบของรูปใหญ่เกินไป และไม่รู้จะแก้ไขอย่างไร นี่คือรหัสของฉัน: par(mfcol=c(5,3)) hist(RtBio, main="Histograma de Bio Pappel") boxplot(RtBio, main="Diagrama de Caja de Bio Pappel") stem(RtBio) plot(RtBio, main="Gráfica de Dispersión") hist(RtAlsea, main="Histograma de Alsea") boxplot(Alsea, main="Diagrama de caja de Alsea") stem(RtAlsea) plot(RtTelev, main="Gráfica de distribución de Alsea") hist(RtTelev, main="Histograma de Televisa") boxplot(telev, main="Diagrama …
109 r  plot  figure  margins 

4
ส่งผ่านข้อโต้แย้งหลายประการเพื่อ FUN of lapply (และอื่น ๆ * ใช้)
ฉันมีคำถามเกี่ยวกับการส่งอาร์กิวเมนต์หลายรายการไปยังฟังก์ชันเมื่อใช้lapplyในR. เมื่อฉันใช้ lapply กับไวยากรณ์ของlapply(input, myfun);- สิ่งนี้เข้าใจได้ง่ายและฉันสามารถกำหนด myfun ได้เช่นนั้น: myfun &lt;- function(x) { # doing something here with x } lapply(input, myfun); และองค์ประกอบของinputจะถูกส่งผ่านเป็นอาร์กิวเมนต์xmyfun แต่ถ้าฉันต้องผ่านข้อโต้แย้งเพิ่มเติมอีกmyfuncล่ะ? ตัวอย่างเช่นมีการกำหนดไว้เช่นนั้น: myfun &lt;- function(x, arg1) { # doing something here with x and arg1 } ฉันจะใช้ฟังก์ชันนี้โดยส่งผ่านทั้งสองinputองค์ประกอบ (เป็นxอาร์กิวเมนต์) และอาร์กิวเมนต์อื่น ๆ ได้อย่างไร
109 r  lapply 

6
วิธีรวมสคริปต์ (ที่มา) R ในสคริปต์อื่น ๆ
ฉันได้สร้างยูทิลิตี้ R สคริปต์ util.R ซึ่งฉันต้องการใช้จากสคริปต์อื่นในโครงการของฉัน อะไรคือวิธีที่เหมาะสมในการตรวจสอบว่าฟังก์ชันที่สคริปต์กำหนดนี้พร้อมใช้งานในสคริปต์อื่น ๆ ของฉัน ฉันกำลังมองหาสิ่งที่คล้ายกับrequireฟังก์ชั่นที่โหลดแพ็คเกจก็ต่อเมื่อยังไม่ได้โหลด ฉันไม่ต้องการโทรsource("util.R")เพราะจะโหลดสคริปต์ทุกครั้งที่มีการเรียก ฉันรู้ว่าฉันจะได้รับคำตอบบางอย่างที่บอกให้ฉันสร้างแพ็คเกจเช่นเดียวกับในการจัดระเบียบซอร์สโค้ด R :) แต่ฉันไม่ได้สร้างสิ่งที่จะใช้ที่อื่นมันเป็นเพียงโปรเจ็กต์แบบสแตนด์อโลน
108 r 

7
การระบุ colClasses ใน read.csv
ฉันพยายามระบุcolClassesตัวเลือกในread.csvฟังก์ชันใน R ในข้อมูลของฉันคอลัมน์แรก "เวลา" เป็นเวกเตอร์อักขระในขณะที่คอลัมน์ที่เหลือเป็นตัวเลข data &lt;- read.csv("test.csv", comment.char="" , colClasses=c(time="character", "numeric"), strip.white=FALSE) ในคำสั่งด้านบนฉันต้องการให้ R อ่านในคอลัมน์ "เวลา" เป็น "อักขระ" และส่วนที่เหลือเป็นตัวเลข แม้ว่าตัวแปร "data" จะมีผลลัพธ์ที่ถูกต้องหลังจากที่คำสั่งเสร็จสมบูรณ์ R ส่งคืนคำเตือนต่อไปนี้ ฉันสงสัยว่าฉันจะแก้ไขคำเตือนเหล่านี้ได้อย่างไร? Warning messages: 1: In read.table(file = file, header = header, sep = sep, quote = quote, : not all columns named in 'colClasses' exist …
108 r  csv  read.csv 

5
แปลงค่าในคอลัมน์เป็นชื่อแถวในกรอบข้อมูลที่มีอยู่ใน R
ฉันต้องการแปลงค่าในคอลัมน์ของกรอบข้อมูลที่มีอยู่เป็นชื่อแถว เป็นไปได้ไหมที่จะทำสิ่งนี้โดยไม่ต้องส่งออก data frame แล้วนำเข้าใหม่ด้วยการrow.names =โทร? ตัวอย่างเช่นฉันต้องการแปลง: &gt; samp names Var.1 Var.2 Var.3 1 A 1 5 0 2 B 2 4 1 3 C 3 3 2 4 D 4 2 3 5 E 5 1 4 เข้าสู่: &gt; samp.with.rownames Var.1 Var.2 Var.3 A 1 5 0 B 2 …
108 r 

10
วิธีแก้ปัญหาความคิดเห็นหลายบรรทัด?
ฉัน (เรียงลำดับ) รู้คำตอบสำหรับคำถามนี้แล้ว แต่ฉันคิดว่ามันเป็นสิ่งที่ถูกถามบ่อยมากในรายการผู้ใช้ R ซึ่งควรมีคำตอบที่ดีที่มั่นคง จากความรู้ที่ดีที่สุดของฉันไม่มีฟังก์ชันการแสดงความคิดเห็นแบบหลายบรรทัดใน R ดังนั้นใครมีวิธีแก้ปัญหาที่ดีหรือไม่? แม้ว่างานใน R มักจะเกี่ยวข้องกับเซสชันแบบโต้ตอบ (ซึ่งทำให้เกิดข้อสงสัยเกี่ยวกับความจำเป็นในการแสดงความคิดเห็นหลายบรรทัด) แต่ก็มีบางครั้งที่ฉันต้องส่งสคริปต์ไปยังเพื่อนร่วมงานและเพื่อนร่วมชั้นซึ่งส่วนใหญ่เกี่ยวข้องกับบล็อกโค้ดที่ไม่สำคัญ และสำหรับคนที่มาจากภาษาอื่นมันเป็นคำถามที่ค่อนข้างเป็นธรรมชาติ ในอดีตฉันเคยใช้คำพูด เนื่องจากสตริงรองรับการแบ่งบรรทัดการรันสคริปต์ R ด้วย " Here's my multiline comment. " a &lt;- 10 rocknroll.lm &lt;- lm(blah blah blah) ... ใช้งานได้ดี ใครมีวิธีแก้ไขที่ดีกว่านี้ไหม
108 r  comments  r-faq 

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