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

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

6
จะบอกได้อย่างไรว่าอะไรอยู่ในเวกเตอร์หนึ่งไม่ใช่เวกเตอร์อื่น?
ใน matlab มีวิธีค้นหาค่าในเวกเตอร์หนึ่ง แต่ไม่พบในอีกเวกเตอร์ ตัวอย่างเช่น: x <- c(1,2,3,4) y <- c(2,3,4) มีฟังก์ชั่นใดบ้างที่บอกฉันว่าค่าที่อยู่ในxนั้นไม่ได้yเป็น 1?
88 r  vector 

3
แบ่งดาต้าเฟรมขนาดใหญ่เป็นรายการของเฟรมข้อมูลตามค่าทั่วไปในคอลัมน์
ฉันมีกรอบข้อมูลที่มี 10 คอลัมน์ซึ่งรวบรวมการกระทำของ "ผู้ใช้" โดยที่คอลัมน์ใดคอลัมน์หนึ่งมี ID (ไม่ใช่เฉพาะระบุผู้ใช้) (คอลัมน์ 10) ความยาวของกรอบข้อมูลประมาณ 750000 แถว ฉันกำลังพยายามแยกเฟรมข้อมูลแต่ละรายการ (ดังนั้นการรับรายการหรือเวกเตอร์ของเฟรมข้อมูล) แยกตามคอลัมน์ที่มีตัวระบุ "ผู้ใช้" เพื่อแยกการกระทำของนักแสดงคนเดียว ID | Data1 | Data2 | ... | UserID 1 | aaa | bbb | ... | u_001 2 | aab | bb2 | ... | u_001 3 | aac | bb3 | …

14
ข้อผิดพลาด: การใช้งาน C stack ใกล้ถึงขีด จำกัด มากเกินไป
ฉันพยายามเรียกใช้โค้ดวนซ้ำที่ค่อนข้างลึกใน R และมันทำให้ฉันมีข้อผิดพลาดนี้: ข้อผิดพลาด: การใช้งาน C stack ใกล้ถึงขีด จำกัด มากเกินไป ผลลัพธ์ของฉันCStack_info()คือ: Cstack_info() size current direction eval_depth 67108864 8120 1 2 ฉันมีหน่วยความจำมากมายในเครื่องฉันแค่พยายามหาวิธีเพิ่ม CStack สำหรับ R แก้ไข: มีคนขอตัวอย่างที่ทำซ้ำได้ นี่คือตัวอย่างโค้ดพื้นฐานที่ทำให้เกิดปัญหา วิ่ง f (1,1) สองสามครั้งคุณจะได้รับข้อผิดพลาด โปรดทราบว่าฉันได้ตั้งค่า --max-ppsize = 500000 และตัวเลือก (นิพจน์ = 500000) แล้วดังนั้นหากคุณไม่ได้ตั้งค่าเหล่านั้นคุณอาจได้รับข้อผิดพลาดเกี่ยวกับหนึ่งในสองสิ่งนั้นแทน อย่างที่คุณเห็นการเรียกซ้ำสามารถลงลึกได้ที่นี่และฉันไม่รู้ว่าจะทำอย่างไรให้มันทำงานอย่างสม่ำเสมอ ขอบคุณ. f <- function(root=1,lambda=1) { x <- c(0,1); prob …
88 r 

5
เลือกองค์ประกอบแรกของรายการที่ซ้อนกัน
สมมติว่าฉันมีรายชื่อดังนี้: x = list(list(1,2), list(3,4), list(5,6)) ฉันต้องการรายการที่มีเฉพาะองค์ประกอบแรกของรายการที่ซ้อนกัน ฉันสามารถทำได้โดยส่งคืนรายการอื่นเช่นนั้น x1 = lapply(x, function(l) l[[1]]) มีสัญกรณ์ทางลัดสำหรับสิ่งนี้หรือไม่?
88 r  list 

1
ggplot2 ระยะขอบพื้นที่แปลง?
มีวิธีง่ายๆในการเพิ่มช่องว่างระหว่างหัวเรื่องพล็อตและพื้นที่พล็อตด้านล่าง (ช่องที่มีข้อมูล) ในทำนองเดียวกันฉันต้องการเว้นวรรคระหว่างชื่อแกนและป้ายชื่อแกน กล่าวอีกนัยหนึ่งมีวิธี "เลื่อนหัวเรื่องขึ้นเล็กน้อยชื่อแกน y ไปทางซ้ายเล็กน้อยและหัวเรื่องแกน x ลดลงเล็กน้อย" หรือไม่?

12
ออกจากและรีสตาร์ทเซสชัน R ที่สะอาดจากภายใน R?
มีวิธีใดบ้างที่ฉันสามารถสร้างนามแฝงภายใน R ซึ่งจะดำเนินการq()แล้วเริ่มเซสชัน R ใหม่ทั้งหมด และใช่ฉันขี้เกียจพิมพ์q()แล้วตามด้วยตัวอักษรR:)
88 r  alias 

8
วิธีทำให้เส้นโค้งเรียบกับข้อมูลของฉันใน R
Rฉันพยายามที่จะวาดเส้นโค้งเรียบ ฉันมีข้อมูลของเล่นง่ายๆดังต่อไปนี้: > x [1] 1 2 3 4 5 6 7 8 9 10 > y [1] 2 4 6 8 7 12 14 16 18 20 ตอนนี้เมื่อฉันวางแผนด้วยคำสั่งมาตรฐานมันจะดูเป็นหลุมเป็นบ่อและหงุดหงิดแน่นอน: > plot(x,y, type='l', lwd=2, col='red') ฉันจะทำให้เส้นโค้งเรียบเพื่อให้ขอบทั้ง 3 โค้งมนโดยใช้ค่าประมาณได้อย่างไร ฉันรู้ว่ามีหลายวิธีในการปรับให้เข้ากับเส้นโค้งที่ราบรื่น แต่ฉันไม่แน่ใจว่าวิธีใดที่เหมาะสมที่สุดสำหรับเส้นโค้งประเภทนี้และคุณจะเขียนRอย่างไร
88 r  plot  curve-fitting 

6
วิธีรับฟังนิพจน์เหตุการณ์มากกว่าหนึ่งรายการภายใน Shiny eventReactive handler
ฉันต้องการให้สองเหตุการณ์ที่แตกต่างกันเพื่อกระตุ้นการอัปเดตข้อมูลที่ใช้โดยพล็อต / เอาต์พุตต่างๆในแอปของฉัน ปุ่มหนึ่งคือปุ่มที่คลิก ( input$spec_button) และอีกปุ่มคือจุดบนจุดที่คลิก ( mainplot.click$click) โดยทั่วไปฉันต้องการแสดงรายการทั้งสองอย่างในเวลาเดียวกัน แต่ฉันไม่แน่ใจว่าจะเขียนโค้ดอย่างไร นี่คือสิ่งที่ฉันมีตอนนี้: ในเซิร์ฟเวอร์ R: data <- eventReactive({mainplot.click$click | input$spec_button}, { if(input$spec_button){ # get data relevant to the button } else { # get data relevant to the point clicked } }) แต่ประโยค if-else ไม่ทำงาน Error in mainplot.click$click | input$spec_button : …
88 r  shiny 

12
วิธีง่ายๆในการส่งออก data.frame หลายแผ่นไปยังแผ่นงาน Excel หลายแผ่น
ฉันประหลาดใจที่พบว่าไม่มีวิธีง่ายๆในการส่งออก data.frame หลายรายการไปยังแผ่นงานหลายแผ่นของไฟล์ Excel? ฉันลองใช้แพ็คเกจxlsxดูเหมือนว่ามันจะเขียนลงแผ่นงานได้เพียงแผ่นเดียว (แทนที่แผ่นงานเก่า) ฉันลองแพ็คเกจWriteXLSด้วย แต่มันทำให้ฉันมีข้อผิดพลาดตลอดเวลา ... โครงสร้างโค้ดของฉันเป็นแบบนี้: โดยการออกแบบสำหรับการทำซ้ำแต่ละครั้งดาต้าเฟรมผลลัพธ์ (tempTable) และ sheetName (sn) ได้รับการอัปเดตและส่งออกเป็นแท็บเดียว for (i in 2 : ncol(code)){ ... tempTable <- ... sn <- ... WriteXLS("tempTable", ExcelFileName = "C:/R_code/../file.xlsx", SheetNames = sn); } ฉันสามารถส่งออกเป็นไฟล์ cvs ได้หลายไฟล์ แต่ต้องมีวิธีง่ายๆในการทำเช่นนั้นใน Excel ใช่ไหม
88 r  excel  xlsx 

4
ทำไมลูปจึงช้าใน R
ฉันรู้ว่าลูปช้าRและฉันควรพยายามทำสิ่งต่างๆในลักษณะเวกเตอร์แทน แต่ทำไม? ทำไมลูปจึงช้าและapplyเร็ว applyเรียกใช้ฟังก์ชันย่อยหลายอย่างซึ่งดูเหมือนจะไม่เร็ว อัปเดต:ขออภัยคำถามไม่ถูกต้อง ฉันสับสนกับเวกapplyเตอร์ คำถามของฉันควรจะเป็น "เหตุใด vectorisation จึงเร็วกว่า"
87 performance  r  apply 

17
สร้างตัวแปรจำลอง
ฉันมีปัญหาในการสร้างตัวแปรดัมมี่ต่อไปนี้ใน R: ฉันกำลังวิเคราะห์ข้อมูลอนุกรมเวลารายปี (ช่วงเวลา 2491-2552) ฉันมีสองคำถาม: ฉันจะสร้างตัวแปรจำลองสำหรับการสังเกต # 10 เช่นปี 2500 ได้อย่างไร (ค่า = 1 ที่ปี 1957 และเป็นศูนย์) ฉันจะสร้างตัวแปรดัมมี่ซึ่งเป็นศูนย์ก่อนปี 1957 และรับค่า 1 ตั้งแต่ปี 1957 เป็นต้นไปจนถึงปี 2009 ได้อย่างไร
87 r  r-faq 

5
แปลง Nameed Character Vector เป็น data.frame
ฉันมีเวกเตอร์อักขระที่มีชื่อที่ส่งคืนจาก xmlAttrs ดังนี้: testVect <- structure(c("11.2.0.3.0", "12.89", "12.71"), .Names = c("db_version", "elapsed_time", "cpu_time")) ฉันต้องการแปลงเป็น data frame ที่มีลักษณะดังนี้: testDF <- data.frame("db_version"="11.2.0.3.0","elapsed_time"=12.89,"cpu_time"=12.71) head(testDF) db_version elapsed_time cpu_time 1 11.2.0.3.0 12.89 12.71

5
แยกสตริงข้อความในคอลัมน์ data.table
ฉันมีสคริปต์ที่อ่านข้อมูลจากไฟล์ CSV เป็นไฟล์data.tableแล้วแยกข้อความในคอลัมน์หนึ่งออกเป็นคอลัมน์ใหม่หลายคอลัมน์ ฉันกำลังใช้ฟังก์ชันlapplyand strsplitเพื่อทำสิ่งนี้ นี่คือตัวอย่าง: library("data.table") df = data.table(PREFIX = c("A_B","A_C","A_D","B_A","B_C","B_D"), VALUE = 1:6) dt = as.data.table(df) # split PREFIX into new columns dt$PX = as.character(lapply(strsplit(as.character(dt$PREFIX), split="_"), "[", 1)) dt$PY = as.character(lapply(strsplit(as.character(dt$PREFIX), split="_"), "[", 2)) dt # PREFIX VALUE PX PY # 1: A_B 1 A B # 2: …
87 r  data.table 

13
การตัดแต่งไฟล์ csv ขนาดใหญ่ (3.5 GB) เพื่ออ่านเป็น R
ดังนั้นฉันจึงมีไฟล์ข้อมูล (คั่นด้วยอัฒภาค) ที่มีรายละเอียดจำนวนมากและแถวที่ไม่สมบูรณ์ (นำ Access และ SQL ไปสู่การสำลัก) เป็นชุดข้อมูลระดับเขตที่แบ่งออกเป็นกลุ่มกลุ่มย่อยและกลุ่มย่อย (รวมประมาณ 200 ปัจจัย) เป็นเวลา 40 ปี ในระยะสั้นมันใหญ่มากและมันจะไม่พอดีกับหน่วยความจำถ้าฉันพยายามอ่านมัน คำถามของฉันก็คือสิ่งนี้เนื่องจากฉันต้องการมณฑลทั้งหมด แต่เพียงปีเดียว (และเป็นเพียงระดับสูงสุดของกลุ่ม ... นำไปสู่ประมาณ 100,000 แถวในตอนท้าย) วิธีที่ดีที่สุดในการรับ ค่าสะสมนี้เป็น R? ตอนนี้ฉันกำลังพยายามตัดทอนปีที่ไม่เกี่ยวข้องกับ Python โดยหลีกเลี่ยงขีด จำกัด ขนาดไฟล์โดยการอ่านและดำเนินการทีละบรรทัด แต่ฉันต้องการโซลูชัน R-only (แพ็คเกจ CRAN OK) มีวิธีที่คล้ายกันในการอ่านไฟล์ทีละชิ้นใน R หรือไม่? ความคิดใด ๆ ที่จะได้รับการชื่นชมอย่างมาก. อัปเดต: ข้อ จำกัด จำเป็นต้องใช้เครื่องของฉันจึงไม่มีอินสแตนซ์ EC2 R-only ให้มากที่สุด ความเร็วและทรัพยากรไม่น่ากังวลในกรณีนี้ …
87 r  csv 

8
สคริปต์ทำลาย / ออก
ฉันมีโปรแกรมที่วิเคราะห์ข้อมูลและมีความยาวไม่กี่ร้อยบรรทัด ในช่วงแรกของโปรแกรมฉันต้องการควบคุมคุณภาพและหากมีข้อมูลไม่เพียงพอฉันต้องการให้โปรแกรมยุติและกลับไปที่คอนโซล R มิฉะนั้นฉันต้องการให้โค้ดที่เหลือทำงาน ฉันได้พยายามbreak, browserและquitและไม่มีพวกเขาหยุดการทำงานของส่วนที่เหลือของโปรแกรม (และquitหยุดการดำเนินการเช่นเดียวกับการเลิกสูบบุหรี่อย่างสมบูรณ์ R ซึ่งเป็นสิ่งที่ฉันไม่ต้องการให้เกิดขึ้น) ทางเลือกสุดท้ายของฉันคือการสร้างif-elseคำสั่งดังต่อไปนี้: if(n < 500){} else{*insert rest of program here*} แต่ดูเหมือนว่าการเขียนโค้ดไม่ดี ฉันพลาดอะไรไปรึเปล่า?
87 r  exit  break 

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