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

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

6
แทนที่อักขระเฉพาะภายในสตริง
ฉันต้องการลบอักขระเฉพาะจากสตริงภายในเวกเตอร์ซึ่งคล้ายกับคุณลักษณะค้นหาและแทนที่ใน Excel นี่คือข้อมูลที่ฉันเริ่มต้นด้วย: group <- data.frame(c("12357e", "12575e", "197e18", "e18947") ฉันเริ่มต้นด้วยคอลัมน์แรกเท่านั้น ฉันต้องการสร้างคอลัมน์ที่สองโดยลบe's: group group.no.e 12357e 12357 12575e 12575 197e18 19718 e18947 18947

12
ตรงข้ามกับ% ใน%
ตัวแปรเด็ดขาด V1 ในกรอบข้อมูล D1 สามารถมีค่าที่แสดงด้วยตัวอักษรจาก A ถึง Z ฉันต้องการสร้าง D2 ชุดย่อยซึ่งไม่รวมค่าบางค่าเช่น B, N และ T โดยทั่วไปฉันต้องการคำสั่งที่เป็น ตรงกันข้ามกับ %in% D2 = subset(D1, V1 %in% c('B','N',T'))
262 r 


9
ผสานหลาย data.frames พร้อมกันในรายการ
ฉันมีรายการของ data.frames มากมายที่ฉันต้องการผสาน ปัญหาที่นี่คือแต่ละ data.frame แตกต่างกันในแง่ของจำนวนแถวและคอลัมน์ แต่พวกเขาทั้งหมดร่วมตัวแปรสำคัญ (ที่ฉันได้เรียก"var1"และ"var2"ในรหัสด้านล่าง) หาก data.frames เหมือนกันในแง่ของคอลัมน์ฉันสามารถทำได้rbindซึ่ง rbind.fill ของplyrจะทำงานได้ แต่นั่นไม่ใช่กรณีของข้อมูลเหล่านี้ เนื่องจากmergeคำสั่งใช้งานได้กับ data.frames เพียง 2 ตัวเท่านั้นฉันจึงหันไปหาแนวคิดทางอินเทอร์เน็ต ฉันได้หนึ่งจากที่นี่ซึ่งทำงานอย่างสมบูรณ์ใน R 2.7.2 ซึ่งเป็นสิ่งที่ฉันมีในเวลา: merge.rec <- function(.list, ...){ if(length(.list)==1) return(.list[[1]]) Recall(c(list(merge(.list[[1]], .list[[2]], ...)), .list[-(1:2)]), ...) } และฉันจะเรียกฟังก์ชั่นเช่นนี้: df <- merge.rec(my.list, by.x = c("var1", "var2"), by.y = c("var1", "var2"), all = T, …
258 r  list  merge  dataframe  r-faq 

3
ชื่อเรื่อง Center Plot ใน ggplot2
สวัสดีโค้ดง่าย ๆ นี้ (และสคริปต์ของฉันตั้งแต่เช้านี้) เริ่มให้ชื่อฉันเป็น ggplot2 แล้ว Ubuntu version: 16.04 R studio version: Version 0.99.896 R version: 3.3.2 GGPLOT2 version: 2.2.0 ฉันติดตั้งใหม่ข้างต้นเช้านี้เพื่อลองและแก้ไขปัญหานี้ .... dat <- data.frame( time = factor(c("Lunch","Dinner"), levels=c("Lunch","Dinner")), total_bill = c(14.89, 17.23) ) # Add title, narrower bars, fill color, and change axis labels ggplot(data=dat, aes(x=time, y=total_bill, fill=time)) …
255 r  ggplot2 

26
กำหนดเส้นทางของสคริปต์การดำเนินการ
ฉันมีสคริปต์ที่เรียกfoo.Rว่ารวมสคริปต์อื่นother.Rซึ่งอยู่ในไดเรกทอรีเดียวกัน: #!/usr/bin/env Rscript message("Hello") source("other.R") แต่ฉันต้องการRพบว่าother.Rไม่ว่าไดเรกทอรีทำงานปัจจุบัน กล่าวอีกนัยหนึ่งfoo.Rจำเป็นต้องรู้เส้นทางของตัวเอง ฉันจะทำสิ่งนั้นได้อย่างไร
255 r  file  path  rscript  r-faq 

3
โอเปอเรเตอร์บูลีน && และ ||
ตามคำนิยามภาษา R ความแตกต่างระหว่าง&และ&&(ตามลําดับ|และ||) คือการที่อดีตถูก vectorized ในขณะที่หลังไม่ได้ ตามข้อความช่วยเหลือฉันอ่านความแตกต่างคล้ายกับความแตกต่างระหว่าง "และ" และ "AndAlso" (ตามลำดับ "หรือ" และ "OrElse") ... ความหมาย: นั่นไม่ใช่การประเมินทั้งหมดหากพวกเขาไม่จำเป็นต้องเป็น (เช่น A หรือ B หรือ C เป็นจริงเสมอถ้า A เป็นจริงดังนั้นหยุดประเมินถ้า A เป็นจริง) มีคนช่วยแสงที่นี่ได้ไหม นอกจากนี้ยังมี AndAlso และ OrElse ใน R หรือไม่

4
ลบคำอธิบายแผนภูมิ ggplot 2.2
ฉันพยายามรักษาตำนานของเลเยอร์หนึ่ง (ราบรื่น) และลบคำอธิบายของอีกเลเยอร์ (จุด) ฉันได้พยายามปิดตำนานด้วยและguides(colour = FALSE)geom_point(aes(color = vs), show.legend = FALSE) แก้ไข : เนื่องจากคำถามนี้และคำตอบนั้นได้รับความนิยมจึงเป็นตัวอย่างที่ทำซ้ำได้ตามลำดับ: library(ggplot2) ggplot(data = mtcars, aes(x = mpg, y = disp, group = gear)) + geom_point(aes(color = vs)) + geom_point(aes(shape = factor(cyl))) + geom_line(aes(linetype = factor(gear))) + geom_smooth(aes(fill = factor(gear), color = gear)) + theme_bw()
250 r  ggplot2  legend 

7
วันที่ปัจจุบันของ YAML อยู่ใน rmarkdown
ฉันสงสัยว่ามีเคล็ดลับที่จะนำวันที่ปัจจุบันมาใช้ในส่วนหน้าของ YAML ของ.rmdเอกสารที่ต้องดำเนินการโดยknitrและrmarkdownแพ็คเกจ ฉันเคยมีบรรทัดต่อไปนี้ที่ด้านบนของหน้า wiki ของฉัน _baptiste, `r format(Sys.time(), "%d %B, %Y")`_ และมันจะถูกแปลงเป็นbaptiste, 03 พฤษภาคม, 2014ในเอาต์พุต html ตอนนี้ฉันต้องการที่จะใช้ประโยชน์จากเสื้อคลุม pandoc ขั้นสูงที่จัดทำโดยrmarkdownแต่มีรหัส r ในส่วนหัว YAML ดูเหมือนจะไม่ทำงาน: --- title: "Sample Document" output: html_document: toc: true theme: united date: `r format(Sys.time(), "%d %B, %Y")` author: baptiste --- Error in yaml::yaml.load(front_matter) : Scanner error: while …
247 r  yaml  knitr  r-markdown 

15
แยกคอลัมน์สตริงข้อมูลเฟรมออกเป็นหลายคอลัมน์
ฉันต้องการใช้ข้อมูลของแบบฟอร์ม before = data.frame(attr = c(1,30,4,6), type=c('foo_and_bar','foo_and_bar_2')) attr type 1 1 foo_and_bar 2 30 foo_and_bar_2 3 4 foo_and_bar 4 6 foo_and_bar_2 และใช้split()ในคอลัมน์ " type" จากด้านบนเพื่อรับสิ่งนี้: attr type_1 type_2 1 1 foo bar 2 30 foo bar_2 3 4 foo bar 4 6 foo bar_2 ฉันคิดว่ามีสิ่งที่ซับซ้อนอย่างไม่น่าเชื่อที่เกี่ยวข้องกับรูปแบบการapplyทำงานบางอย่างแต่ฉันหายไปตั้งแต่นั้น มันดูซับซ้อนเกินไปที่จะเป็นวิธีที่ดีที่สุด ฉันสามารถใช้strsplitด้านล่าง แต่แล้วไม่ชัดเจนว่าจะกลับไปที่ 2 คอลัมน์ในกรอบข้อมูลได้อย่างไร …
246 r  string  dataframe  split  r-faq 

17
ผนวกวัตถุไปยังรายการใน R ในเวลาคงที่ตัดจำหน่าย O (1)?
หากฉันมีรายการ R บางรายการmylistคุณสามารถเพิ่มรายการต่อท้ายobjได้เช่น: mylist[[length(mylist)+1]] <- obj แต่แน่นอนว่ามีบางวิธีที่กะทัดรัดกว่า เมื่อฉันใหม่ที่ R ฉันพยายามเขียนlappend()ดังนี้: lappend <- function(lst, obj) { lst[[length(lst)+1]] <- obj return(lst) } แต่แน่นอนว่าไม่ได้ทำงานเนื่องจากความหมายของการโทรด้วยชื่อของ R ( lstถูกคัดลอกอย่างมีประสิทธิภาพเมื่อมีการโทรดังนั้นการเปลี่ยนแปลงlstจะไม่สามารถมองเห็นได้นอกขอบเขตของlappend()ฉันรู้ว่าคุณสามารถแฮ็คสภาพแวดล้อมในฟังก์ชัน R เพื่อเข้าถึงภายนอก ขอบเขตของฟังก์ชั่นของคุณและกลายสภาพแวดล้อมการโทร แต่ดูเหมือนว่าค้อนขนาดใหญ่ที่จะเขียนฟังก์ชั่นผนวกง่าย ใครช่วยแนะนำวิธีที่สวยงามกว่านี้ได้ไหม คะแนนโบนัสหากมันใช้ได้กับทั้งเวกเตอร์และลิสต์
245 r  performance  list  append  big-o 

13
รวมสองเฟรมข้อมูลตามแถว (rbind) เมื่อมีชุดคอลัมน์ที่แตกต่างกัน
เป็นไปได้หรือไม่ที่จะผูกแถวข้อมูลสองเฟรมที่ไม่มีชุดคอลัมน์เดียวกัน ฉันหวังว่าจะรักษาคอลัมน์ที่ไม่ตรงกันหลังจากการผูกไว้
232 r  dataframe  r-faq 

15
ggplot ที่มี 2 แกน y ในแต่ละด้านและระดับที่แตกต่างกัน
ฉันต้องพล็อตแผนภูมิแท่งที่แสดงจำนวนและแผนภูมิเส้นที่แสดงอัตราทั้งหมดในหนึ่งแผนภูมิฉันสามารถทำทั้งสองอย่างแยกจากกัน แต่เมื่อฉันรวมเข้าด้วยกันฉันจะปรับสเกลของเลเยอร์แรก (เช่นgeom_bar) ทับซ้อนกันเป็นวินาที ชั้น (เช่นgeom_line) ฉันสามารถเลื่อนแกนของgeom_lineไปทางขวาได้ไหม?
231 r  ggplot2  r-faq 

20
วิธีเปลี่ยนป้ายกำกับ facet?
ฉันใช้ggplotคำสั่งต่อไปนี้: ggplot(survey, aes(x = age)) + stat_bin(aes(n = nrow(h3), y = ..count.. / n), binwidth = 10) + scale_y_continuous(formatter = "percent", breaks = c(0, 0.1, 0.2)) + facet_grid(hospital ~ .) + theme(panel.background = theme_blank()) ผลิต ฉันต้องการที่จะเปลี่ยนแง่ป้าย แต่บางสิ่งบางอย่างที่สั้นกว่า (เช่นHosp 1, Hosp 2... ) เพราะพวกเขาเป็นเวลานานเกินไปในขณะนี้และดูแคบ (การเพิ่มความสูงของกราฟไม่ได้ตัวก็จะใช้พื้นที่มากเกินไปใน เอกสาร) ฉันดูหน้าช่วยเหลือของfacet_gridแต่ไม่สามารถหาวิธีได้
230 r  ggplot2  symbols  facet  plotmath 

4
บังคับให้ R ไม่ใช้สัญลักษณ์แทน (เช่น e + 10)?
ฉันสามารถบังคับให้ R ใช้ตัวเลขปกติแทนที่จะใช้e+10เครื่องหมายเหมือนได้หรือไม่ ฉันมี: 1.810032e+09 # and 4 ภายในเวกเตอร์เดียวกันและต้องการดู: 1810032000 # and 4 catฉันสร้างเอาท์พุทสำหรับโปรแกรมแบบเก่าและฉันต้องเขียนแฟ้มข้อความโดยใช้ มันใช้งานได้ดี แต่ฉันก็ไม่สามารถใช้e+10สัญลักษณ์ที่นั่น

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