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

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

7
แตกคอลัมน์ dplyr tbl เป็นเวกเตอร์
มีวิธีที่ชัดเจนมากขึ้นในการรับหนึ่งคอลัมน์ของ dplyr tbl เป็นเวกเตอร์จาก tbl ที่มีฐานข้อมูลส่วนหลัง (เช่นเฟรมข้อมูล / ตารางไม่สามารถเซ็ตย่อยได้โดยตรง) require(dplyr) db <- src_sqlite(tempfile(), create = TRUE) iris2 <- copy_to(db, iris) iris2$Species # NULL นั่นคงง่ายเกินไปดังนั้น collect(select(iris2, Species))[, 1] # [1] "setosa" "setosa" "setosa" "setosa" etc. แต่ดูเหมือนจะเงอะงะนิดหน่อย

3
วิธีการรวมหลายเงื่อนไขเพื่อเซตย่อย data-frame โดยใช้“ หรือ”?
ฉันมี data.frame ใน R ฉันต้องการลองสองเงื่อนไขที่แตกต่างกันในสองคอลัมน์ที่แตกต่างกัน แต่ฉันต้องการให้รวมเงื่อนไขเหล่านี้ ดังนั้นฉันต้องการใช้ "หรือ" เพื่อรวมเงื่อนไข ฉันใช้ไวยากรณ์ต่อไปนี้มาก่อนด้วยความสำเร็จมากมายเมื่อฉันต้องการใช้เงื่อนไข "และ" my.data.frame <- data[(data$V1 > 2) & (data$V2 < 4), ] แต่ฉันไม่ทราบวิธีการใช้ 'หรือ' ข้างต้น
174 r  conditional  dataframe 

11
ใช้ตัวพิมพ์ใหญ่สำหรับอักษรตัวแรกของทั้งสองคำในสตริงสองคำ
สมมติว่าฉันมีสตริงคำสองคำและฉันต้องการใช้ทั้งสองอย่าง name <- c("zip code", "state", "final count") Hmiscแพคเกจที่มีฟังก์ชั่นcapitalizeซึ่งนิยามคำแรก แต่ผมไม่แน่ใจว่าจะได้คำนิยามที่สอง หน้าช่วยเหลือสำหรับcapitalizeไม่แนะนำให้มันสามารถทำงานได้ library(Hmisc) capitalize(name) # [1] "Zip code" "State" "Final count" ฉันอยากจะได้: c("Zip Code", "State", "Final Count") สิ่งที่เกี่ยวกับสายสามคำ: name2 <- c("I like pizza")
174 r  string  title-case 

4
วิธีการระงับคำเตือนทั่วโลกในสคริปต์ R
ฉันมีสคริปต์ R ยาวที่ทำให้เกิดคำเตือนซึ่งฉันสามารถเพิกเฉยได้ ฉันสามารถใช้ suppressWarnings(expr) สำหรับคำสั่งเดียว แต่ฉันจะระงับคำเตือนใน R ทั่วโลกได้อย่างไร มีตัวเลือกสำหรับสิ่งนี้หรือไม่?
174 r  warnings 

10
โหลดหลายแพ็คเกจพร้อมกัน
ฉันจะโหลดแพ็กเกจจำนวนมากพร้อมกันโดยไม่ต้องพิมพ์คำสั่ง need ซ้ำแล้วซ้ำอีกได้อย่างไร? ฉันได้ลองสามวิธีซึ่งทั้งหมดนี้พังและเผา โดยทั่วไปฉันต้องการระบุเวกเตอร์ของชื่อแพ็คเกจให้กับฟังก์ชันที่จะโหลด x<-c("plyr", "psych", "tm") require(x) lapply(x, require) do.call("require", x)
174 r  packages 

8
สำหรับแต่ละแถวใน R dataframe
ฉันมี dataframe และสำหรับแต่ละแถวใน dataframe นั้นฉันต้องทำการค้นหาที่ซับซ้อนและผนวกข้อมูลบางส่วนเข้ากับไฟล์ dataFrame มีผลลัพธ์ทางวิทยาศาสตร์สำหรับหลุมที่เลือกจาก 96 แผ่นหลุมที่ใช้ในการวิจัยทางชีววิทยาดังนั้นฉันต้องการทำบางสิ่งเช่น: for (well in dataFrame) { wellName <- well$name # string like "H1" plateName <- well$plate # string like "plate67" wellID <- getWellID(wellName, plateName) cat(paste(wellID, well$value1, well$value2, sep=","), file=outputFile) } ในโลกแห่งกระบวนการของฉันฉันจะทำสิ่งที่ชอบ: for (row in dataFrame) { #look up stuff using data from …
173 r  dataframe  rows 

3
. SD ย่อมาจาก data.table ใน R
.SDดูมีประโยชน์ แต่ฉันไม่รู้จริงๆว่าฉันกำลังทำอะไรอยู่ มันหมายถึงอะไร ทำไมถึงมีช่วงเวลาก่อนหน้านี้ (หยุดเต็ม) จะเกิดอะไรขึ้นเมื่อฉันใช้งาน ฉันอ่านแล้ว: .SDเป็นdata.tableชุดย่อยของxข้อมูลสำหรับแต่ละกลุ่มยกเว้นคอลัมน์กลุ่ม มันสามารถใช้เมื่อจัดกลุ่มโดยi, เมื่อจัดกลุ่มโดยby, คีย์byและ _ad hoc_by นั่นหมายความว่าลูกสาวdata.tableมีความทรงจำในการปฏิบัติการครั้งต่อไปหรือไม่?
173 r  data.table 

3
ทำไมต้องใช้ purrr :: map แทนที่จะเป็น lapply
มีเหตุผลใดบ้างที่ฉันควรใช้ map(<list-like-object>, function(x) <do stuff>) แทน lapply(<list-like-object>, function(x) <do stuff>) ผลลัพธ์ควรเหมือนกันและมาตรฐานที่ฉันทำดูเหมือนจะแสดงว่าlapplyเร็วกว่าเล็กน้อย (ควรเป็นmapความต้องการในการประเมินอินพุตที่ไม่ได้มาตรฐานการประเมินทั้งหมด) ดังนั้นจะมีเหตุผลว่าทำไมสำหรับกรณีที่เรียบง่ายเช่นที่จริงผมควรพิจารณาเปลี่ยนpurrr::map? ผมไม่ได้ถามเกี่ยวกับการชอบที่นี่หนึ่งหรือไม่ชอบเกี่ยวกับไวยากรณ์ฟังก์ชันอื่น ๆ โดย purrr ฯลฯ แต่อย่างเคร่งครัดเกี่ยวกับการเปรียบเทียบpurrr::mapกับสมมติว่าใช้การประเมินผลมาตรฐานคือlapply map(<list-like-object>, function(x) <do stuff>)มีข้อได้เปรียบอะไรบ้างที่purrr::mapมีในด้านประสิทธิภาพการจัดการข้อยกเว้น ฯลฯ ? ความคิดเห็นด้านล่างแนะนำว่าไม่เป็นเช่นนั้น แต่อาจมีบางคนที่สามารถอธิบายรายละเอียดเพิ่มเติมได้อีกเล็กน้อย?
172 r  purrr 

8
แก้ไขคำเตือนหลายคอลัมน์“ ไม่ทราบคอลัมน์”
ฉันมีคำเตือน "คอลัมน์ที่ไม่รู้จัก" ที่มีอยู่หลายคำสำหรับคำสั่งทุกประเภท (เช่น str (x) เพื่อติดตั้งการอัปเดตบนแพ็คเกจ) และไม่แน่ใจว่าจะแก้ไขข้อผิดพลาดหรือแก้ไขได้อย่างไร คำเตือน "คอลัมน์ที่ไม่รู้จัก" เกี่ยวข้องอย่างชัดเจนกับตัวแปรใน tbl_df ที่ฉันเปลี่ยนชื่อ แต่คำเตือนปรากฏขึ้นในคำสั่งทุกชนิดที่ดูเหมือนจะไม่เกี่ยวข้องกับ tbl_df (เช่นการติดตั้งการอัปเดตบนแพ็คเกจ str (x) โดยที่ x คือ เพียงแค่เวกเตอร์ตัวละคร)
171 r  dplyr 

8
แสดง% แทนที่จะนับในแผนภูมิของตัวแปรเด็ดขาด
ฉันกำลังวางแผนตัวแปรเด็ดขาดและแทนที่จะแสดงจำนวนสำหรับค่าหมวดหมู่แต่ละรายการ ฉันกำลังมองหาวิธีที่จะได้รับggplotการแสดงร้อยละของค่าในหมวดหมู่นั้น แน่นอนว่ามันเป็นไปได้ที่จะสร้างตัวแปรอื่นด้วยเปอร์เซ็นต์ที่คำนวณได้และพล็อตที่หนึ่ง แต่ฉันต้องทำหลายสิบครั้งและฉันหวังว่าจะบรรลุเป้าหมายนั้นในคำสั่งเดียว ฉันกำลังทดลองกับสิ่งที่ชอบ qplot(mydataf) + stat_bin(aes(n = nrow(mydataf), y = ..count../n)) + scale_y_continuous(formatter = "percent") แต่ฉันต้องใช้มันอย่างไม่ถูกต้องเนื่องจากฉันพบข้อผิดพลาด ในการทำซ้ำการตั้งค่าได้ง่ายนี่คือตัวอย่างง่าย ๆ : mydata <- c ("aa", "bb", NULL, "bb", "cc", "aa", "aa", "aa", "ee", NULL, "cc"); mydataf <- factor(mydata); qplot (mydataf); #this shows the count, I'm looking to see % displayed. …
170 r  ggplot2 

5
แผนภูมิเส้น ggplot2 ให้ "geom_path: แต่ละกลุ่มประกอบด้วยการสังเกตเพียงครั้งเดียว คุณจำเป็นต้องปรับเปลี่ยนสุนทรียภาพของกลุ่มหรือไม่?”
ด้วยกรอบข้อมูลนี้ ("df"): year pollution 1 1999 346.82000 2 2002 134.30882 3 2005 130.43038 4 2008 88.27546 ฉันพยายามสร้างแผนภูมิเส้นแบบนี้: plot5 <- ggplot(df, aes(year, pollution)) + geom_point() + geom_line() + labs(x = "Year", y = "Particulate matter emissions (tons)", title = "Motor vehicle emissions in Baltimore") ข้อผิดพลาดที่ฉันได้รับคือ: geom_path: แต่ละกลุ่มประกอบด้วยการสังเกตเพียงครั้งเดียว คุณจำเป็นต้องปรับเปลี่ยนสุนทรียภาพของกลุ่มหรือไม่? แผนภูมิปรากฏเป็นพล็อตกระจายแม้ว่าฉันต้องการแผนภูมิเส้น ฉันพยายามแทนที่geom_line()ด้วยgeom_line(aes(group = …
170 r  ggplot2 

9
ใช้ชื่อตัวแปรแบบไดนามิกใน `dplyr '
ฉันต้องการใช้dplyr::mutate()เพื่อสร้างคอลัมน์ใหม่หลายคอลัมน์ในกรอบข้อมูล ชื่อคอลัมน์และเนื้อหาควรถูกสร้างขึ้นแบบไดนามิก ตัวอย่างข้อมูลจากม่านตา: library(dplyr) iris <- tbl_df(iris) ฉันได้สร้างฟังก์ชันเพื่อกลายพันธุ์คอลัมน์ใหม่ของฉันจากPetal.Widthตัวแปร: multipetal <- function(df, n) { varname <- paste("petal", n , sep=".") df <- mutate(df, varname = Petal.Width * n) ## problem arises here df } ตอนนี้ฉันสร้างการวนซ้ำเพื่อสร้างคอลัมน์ของฉัน: for(i in 2:5) { iris <- multipetal(df=iris, n=i) } อย่างไรก็ตามเนื่องจาก mutate คิดว่า varname เป็นชื่อตัวแปรตามตัวอักษรการวนซ้ำจึงสร้างเพียงหนึ่งตัวแปรใหม่ (เรียกว่า varname) …
168 r  dplyr  r-faq 

12
เรียกใช้ฟังก์ชั่นคล้ายกับการเรียกใช้ในแต่ละแถวของ dataframe ที่มีหลายอาร์กิวเมนต์จากแต่ละแถว
ฉันมีชื่อไฟล์ที่มีหลายคอลัมน์ สำหรับแต่ละแถวใน dataframe ฉันต้องการเรียกใช้ฟังก์ชันบนแถวและอินพุตของฟังก์ชันใช้หลายคอลัมน์จากแถวนั้น ตัวอย่างเช่นสมมติว่าฉันมีข้อมูลนี้และ testFunc ซึ่งยอมรับสอง args: > df <- data.frame(x=c(1,2), y=c(3,4), z=c(5,6)) > df x y z 1 1 3 5 2 2 4 6 > testFunc <- function(a, b) a + b สมมติว่าฉันต้องการใช้ testFunc นี้กับคอลัมน์ x และ z ดังนั้นสำหรับแถวที่ 1 ฉันต้องการ 1 + 5 และสำหรับแถวที่ 2 ฉันต้องการ …
168 r  dataframe 

5
วิธีแปลงตารางเป็น data frame
ฉันมีตารางใน R ที่มีstr()นี้: table [1:3, 1:4] 0.166 0.319 0.457 0.261 0.248 ... - attr(*, "dimnames")=List of 2 ..$ x: chr [1:3] "Metro >=1 million" "Metro <1 million" "Non-Metro Counties" ..$ y: chr [1:4] "q1" "q2" "q3" "q4" และดูเหมือนว่าเมื่อฉันพิมพ์มัน: y x q1 q2 q3 q4 Metro >=1 million 0.1663567 0.2612212 0.2670441 …
167 r 

7
การนำเข้าข้อมูลจากไฟล์ JSON ไปยัง R
มีวิธีการนำเข้าข้อมูลจากไฟล์ JSON ไปยัง R หรือไม่? โดยเฉพาะอย่างยิ่งไฟล์เป็นอาร์เรย์ของวัตถุ JSON ที่มีเขตข้อมูลสตริงวัตถุและอาร์เรย์ แพ็คเกจ RJSON นั้นไม่ชัดเจนมากเกี่ยวกับวิธีจัดการกับhttp://cran.r-project.org/web/packages/rjson/rjson.pdfนี้
166 json  r 

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