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

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

2
แปลง UNIX epoch เป็นวัตถุ Date
ฉันกำลังวางแผนและทำการคำนวณเกี่ยวกับอนุกรมเวลาที่กระจายสม่ำเสมอ ปัจจุบันการประทับเวลาถูกจัดเก็บเป็นจำนวนเต็มแทนจำนวนวินาทีนับตั้งแต่ยุค UNIX (เช่น1352068320) แต่Dateวัตถุดูเหมือนจะเหมาะสมกว่าสำหรับการลงจุด ฉันจะทำการแปลงได้อย่างไร? ฉันได้อ่าน?Date, ?as.Dateและ??epochแต่ดูเหมือนจะไม่ได้รับข้อมูลว่า
118 r  time  r-faq 

8
แปลงคลาสคอลัมน์ใน data.table
ฉันมีปัญหาในการใช้ data.table: ฉันจะแปลงคลาสคอลัมน์ได้อย่างไร นี่คือตัวอย่างง่ายๆ: ด้วย data.frame ฉันไม่มีปัญหาในการแปลงด้วย data.table ฉันไม่รู้วิธี: df <- data.frame(ID=c(rep("A", 5), rep("B",5)), Quarter=c(1:5, 1:5), value=rnorm(10)) #One way: http://stackoverflow.com/questions/2851015/r-convert-data-frame-columns-from-factors-to-characters df <- data.frame(lapply(df, as.character), stringsAsFactors=FALSE) #Another way df[, "value"] <- as.numeric(df[, "value"]) library(data.table) dt <- data.table(ID=c(rep("A", 5), rep("B",5)), Quarter=c(1:5, 1:5), value=rnorm(10)) dt <- data.table(lapply(dt, as.character), stringsAsFactors=FALSE) #Error in rep("", ncol(xi)) …
118 r  data.table 

11
จะอ่านข้อมูลได้อย่างไรเมื่อตัวเลขบางตัวมีเครื่องหมายจุลภาคเป็นตัวคั่นหลักพัน
ฉันมีไฟล์ csv ที่ค่าตัวเลขบางส่วนแสดงเป็นสตริงที่มีเครื่องหมายจุลภาคเป็นตัวคั่นหลักพันเช่น"1,513"แทนที่จะเป็น1513ไฟล์. วิธีที่ง่ายที่สุดในการอ่านข้อมูลเป็น R คืออะไร? ฉันสามารถใช้ได้read.csv(..., colClasses="character")แต่ฉันต้องตัดเครื่องหมายจุลภาคออกจากองค์ประกอบที่เกี่ยวข้องก่อนที่จะแปลงคอลัมน์เหล่านั้นเป็นตัวเลขและฉันไม่พบวิธีที่เป็นระเบียบในการทำเช่นนั้น
117 r  csv  r-faq 

3
การค้นหาดัชนีแถวที่มีค่าสูงสุดโดยใช้ R
ให้เมทริกซ์ต่อไปนี้สมมติว่าฉันต้องการหาค่าสูงสุดในคอลัมน์ที่สอง: mat <- matrix(c(1:3,7:9,4:6), byrow = T, nc = 3) mat [,1] [,2] [,3] [1,] 1 2 3 [2,] 7 8 9 [3,] 4 5 6 ฉันรู้ว่าmax(mat[,2])จะส่งคืน 8 ฉันจะคืนค่าดัชนีแถวในกรณีนี้แถวที่สองได้อย่างไร
117 r  matrix 

3
ควบคุมขนาดของจุดในแผนภาพ R?
ใน R plot()ฟังก์ชันรับpchอาร์กิวเมนต์ที่ควบคุมการปรากฏของจุดในพล็อต ฉันกำลังสร้าง scatterplots ที่มีจุดนับหมื่นและชอบจุดเล็ก ๆ แต่ไม่เล็กเกินไป โดยทั่วไปฉันพบว่าตัวpch='.'เล็กเกินไป แต่pch=19ก็อ้วนเกินไป มีบางอย่างอยู่ตรงกลางหรือมีวิธีลดขนาดจุดลงบ้างไหม?
117 r  plot  scatter-plot 

3
สร้างเมทริกซ์ของ scatterplots (เทียบเท่าคู่ ()) ใน ggplot2
เป็นไปได้ไหมที่จะพล็อตเมทริกซ์ของการกระจายggplot2โดยใช้ggplotคุณสมบัติที่ดีเช่นการจับคู่ปัจจัยเพิ่มเติมกับสีรูปร่าง ฯลฯ และเพิ่มความเรียบเนียนขึ้น? ฉันคิดเกี่ยวกับบางสิ่งบางอย่างที่คล้ายกับฟังก์ชั่นbasepairs
117 r  ggplot2 

16
R: การติดตั้งแพคเกจ rJava ล้มเหลว
เมื่อติดตั้ง rJava โดยใช้install.packages("rJava")คำสั่งฉันได้รับข้อผิดพลาดต่อไปนี้: checking Java support in R... present: interpreter : '/usr/bin/java' archiver : '/usr/bin/jar' compiler : '/usr/bin/javac' header prep.: '/usr/bin/javah' cpp flags : '-I/usr/lib/jvm/java-6-sun-1.6.0.20/jre/../include -I/usr/lib/jvm/java-6-sun-1.6.0.20/jre/../include/linux' java libs : '-L/usr/lib/jvm/java-6-sun-1.6.0.20/jre/lib/amd64/server -L/usr/lib/jvm/java-6-sun-1.6.0.20/jre/lib/amd64 -L/usr/lib/jvm/java-6-sun-1.6.0.20/jre/../lib/amd64 -L -L/usr/java/packages/lib/amd64 -L/usr/lib64 -L/lib64 -L/lib -L/usr/lib -ljvm' checking whether JNI programs can be compiled... yes checking JNI data …
116 r  rjava 

6
แปลงแถวของกรอบข้อมูลเป็นเวกเตอร์
ฉันต้องการสร้างเวกเตอร์จากแถวของกรอบข้อมูล แต่ฉันไม่ต้องการที่จะต้องมีชื่อแถวและคอลัมน์ ฉันลองหลายอย่าง ... แต่ไม่มีโชค นี่คือกรอบข้อมูลของฉัน: > df <- data.frame(a=c(1,2,4,2),b=c(2,6,2,1),c=c(2.6,8.2,7.5,3)) > df a b c 1 1 2 2.6 2 2 6 8.2 3 4 2 7.5 4 2 1 3.0 ฉันเหนื่อย: > newV <- as.vector(df[1,]) > newV a b c 1 1 2 2.6 แต่ฉันต้องการบางอย่างที่มีลักษณะเช่นนี้: > newV <- c( …
116 r  vector  dataframe 

7
การเพิ่มคอลัมน์ใน data.frame
ฉันมี data.frame ด้านล่าง ฉันต้องการเพิ่มคอลัมน์ที่จำแนกข้อมูลของฉันตามคอลัมน์ 1 ( h_no) ในลักษณะที่ชุดแรกของ h_no 1,2,3,4 คือคลาส 1 ชุดที่สองของh_no(1 ถึง 7) คือคลาส 2 เป็นต้น ดังที่ระบุไว้ในคอลัมน์สุดท้าย h_no h_freq h_freqsq 1 0.09091 0.008264628 1 2 0.00000 0.000000000 1 3 0.04545 0.002065702 1 4 0.00000 0.000000000 1 1 0.13636 0.018594050 2 2 0.00000 0.000000000 2 3 0.00000 0.000000000 2 …
115 r  dataframe 

4
`ระดับ <-` (นี่คือคาถาอะไร?
ในคำตอบสำหรับคำถามอื่น @Marek โพสต์วิธีแก้ปัญหาต่อไปนี้: https://stackoverflow.com/a/10432263/636656 dat &lt;- structure(list(product = c(11L, 11L, 9L, 9L, 6L, 1L, 11L, 5L, 7L, 11L, 5L, 11L, 4L, 3L, 10L, 7L, 10L, 5L, 9L, 8L)), .Names = "product", row.names = c(NA, -20L), class = "data.frame") `levels&lt;-`( factor(dat$product), list(Tylenol=1:3, Advil=4:6, Bayer=7:9, Generic=10:12) ) ซึ่งสร้างเป็นผลลัพธ์: [1] Generic Generic Bayer …
115 r  types  levels 

4
ฉันจะเรียนรู้วิธีเขียนโค้ด C เพื่อเร่งความเร็วฟังก์ชัน R ช้าได้ที่ไหน [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน3 ปีที่ผ่านมา ปรับปรุงคำถามนี้ แหล่งข้อมูลที่ดีที่สุดสำหรับการเรียนรู้วิธีเขียนโค้ด C เพื่อใช้กับ R คืออะไร ฉันรู้เกี่ยวกับระบบและส่วนต่อประสานภาษาต่างประเทศของส่วนขยาย R แต่ฉันพบว่ามันค่อนข้างยาก แหล่งข้อมูลที่ดี (ทั้งออนไลน์และออฟไลน์) สำหรับการเขียนโค้ด C เพื่อใช้กับ R คืออะไร? เพื่อชี้แจงฉันไม่ต้องการเรียนรู้วิธีการเขียนโค้ด C ฉันต้องการเรียนรู้วิธีรวม R และ C ให้ดีขึ้นตัวอย่างเช่นฉันจะแปลงจากเวกเตอร์จำนวนเต็ม C เป็นเวกเตอร์จำนวนเต็ม R ได้อย่างไร (หรือในทางกลับกัน) หรือจากสเกลาร์ C เป็นเวกเตอร์ R?
115 r  rcpp 

11
วิธีที่ดีที่สุดในการใช้สคริปต์ R บนบรรทัดคำสั่ง (เทอร์มินัล) คืออะไร?
สะดวกมากที่จะมีสคริปต์ R สำหรับสร้างพล็อตอย่างง่ายจากบรรทัดคำสั่ง อย่างไรก็ตามการเรียกใช้ R จากสคริปต์ bash นั้นไม่สะดวกเลย อุดมคติอาจเป็นเช่น #!/path/to/R ... หรือ #!/usr/bin/env R ... แต่ฉันไม่สามารถทำงานอย่างใดอย่างหนึ่งได้ อีกทางเลือกหนึ่งคือการเก็บสคริปต์ไว้ใน R อย่างหมดจดเช่นscript.Rและเรียกใช้โดยมีR --file=script.Rหรือคล้ายกัน อย่างไรก็ตามในบางครั้งสคริปต์จะอาศัยสวิตช์บรรทัดคำสั่งที่คลุมเครือซึ่งจุดใดส่วนหนึ่งของโค้ดอยู่นอกสคริปต์ ตัวอย่าง: ด้อมสิ่งที่เป็น R จากทุบตีผ่าน .Rprofile ท้องถิ่นสวิทช์ที่ต้องการอยู่แล้วทุกอย่างหมายถึงการยกเว้น--vanilla--no-init-file อีกทางเลือกหนึ่งคือสคริปต์ทุบตีเพื่อจัดเก็บแฟล็ก R และเรียกใช้งานได้อย่างไม่ลำบากซึ่งจะเรียกสคริปต์ R ปัญหาคือว่านี่หมายความว่าโปรแกรมเดียวเพิ่งแยกออกเป็นสองไฟล์ซึ่งตอนนี้ต้องซิงค์โอนไปยังเครื่องใหม่ด้วยกัน ฯลฯ ตัวเลือกที่ฉันดูถูกน้อยที่สุดในขณะนี้คือการฝัง R ในสคริปต์ทุบตี: #!/bin/bash ... # usage message to catch bad input without invoking R ... # …
115 bash  r 

3
การตั้งค่าขีด จำกัด แต่ละแกนด้วย facet_wrap และ scale = "free" ใน ggplot2
ฉันกำลังสร้างพล็อตแง่มุมเพื่อดูค่าที่คาดการณ์กับค่าจริงเคียงข้างกันโดยมีพล็อตของค่าที่คาดการณ์เทียบกับส่วนที่เหลือ ฉันจะใช้shinyเพื่อช่วยสำรวจผลลัพธ์ของความพยายามในการสร้างแบบจำลองโดยใช้พารามิเตอร์การฝึกอบรมต่างๆ ฉันฝึกโมเดลด้วย 85% ของข้อมูลทดสอบ 15% ที่เหลือและทำซ้ำ 5 ครั้งนี้รวบรวมค่าจริง / คาดการณ์ในแต่ละครั้ง หลังจากคำนวณเศษเหลือแล้วdata.frameหน้าตาของฉันจะเป็นดังนี้: head(results) act pred resid 2 52.81000 52.86750 -0.05750133 3 44.46000 42.76825 1.69175252 4 54.58667 49.00482 5.58184181 5 36.23333 35.52386 0.70947731 6 53.22667 48.79429 4.43237981 7 41.72333 41.57504 0.14829173 สิ่งที่ฉันต้องการ: พล็อตเคียงข้างpredกับactและpredเทียบกับresid ช่วง x / y / ขีด จำกัด สำหรับpredเทียบกับactที่จะเหมือนกันโดยควรจากmin(min(results$act), …
115 r  ggplot2  facet 

1
วิธีตีความข้อความ dplyr `สรุป ()` การจัดกลุ่มผลลัพธ์ใหม่โดย 'x' (แทนที่ด้วยอาร์กิวเมนต์ ".groups`)
ฉันเริ่มได้รับข้อความใหม่ (ดูหัวข้อโพสต์) เมื่อเรียกใช้ group_by และสรุป () หลังจากอัปเดตเป็น dplyr เวอร์ชันพัฒนา 0.8.99.9003 นี่คือตัวอย่างในการสร้างเอาต์พุตใหม่: library(tidyverse) library(hablar) df &lt;- read_csv("year, week, rat_house_females, rat_house_males, mouse_wild_females, mouse_wild_males 2018,10,1,1,1,1 2018,10,1,1,1,1 2018,11,2,2,2,2 2018,11,2,2,2,2 2019,10,3,3,3,3 2019,10,3,3,3,3 2019,11,4,4,4,4 2019,11,4,4,4,4") %&gt;% convert(chr(year,week)) %&gt;% mutate(total_rodents = rowSums(select_if(., is.numeric))) %&gt;% convert(num(year,week)) %&gt;% group_by(year,week) %&gt;% summarise(average = mean(total_rodents)) การเอียงเอาต์พุตถูกต้อง แต่ข้อความนี้ปรากฏขึ้น: summarise()การจัดกลุ่มผลลัพธ์ใหม่ตาม 'ปี' (แทนที่ด้วย.groupsอาร์กิวเมนต์) ควรตีความอย่างไร? …
115 r  dplyr  summarize 

12
ขั้นตอนวิธีค่ามัธยฐานแบบโรลลิ่งใน C
ฉันกำลังทำงานกับอัลกอริทึมเพื่อใช้ตัวกรองค่ามัธยฐานแบบกลิ้ง (คล้ายกับตัวกรองค่าเฉลี่ยแบบกลิ้ง) ใน C. จากการค้นหาวรรณกรรมของฉันดูเหมือนว่าจะมีสองวิธีที่มีประสิทธิภาพพอสมควร อันดับแรกคือการจัดเรียงหน้าต่างเริ่มต้นของค่าจากนั้นทำการค้นหาแบบไบนารีเพื่อแทรกค่าใหม่และลบค่าที่มีอยู่ออกในการวนซ้ำแต่ละครั้ง ประการที่สอง (จาก Hardle and Steiger, 1995, JRSS-C, Algorithm 296) สร้างโครงสร้างฮีปแบบปลายคู่โดยมี Maxheap ที่ปลายด้านหนึ่งมินฮ็อปอีกด้านหนึ่งและค่ามัธยฐานอยู่ตรงกลาง สิ่งนี้ให้ผลอัลกอริทึมเวลาเชิงเส้นแทนที่จะเป็นหนึ่งที่เป็น O (n log n) นี่คือปัญหาของฉัน: การนำแบบเดิมมาใช้นั้นทำได้ แต่ฉันต้องเรียกใช้สิ่งนี้กับอนุกรมเวลานับล้านดังนั้นประสิทธิภาพจึงมีความสำคัญมาก ข้อหลังนี้พิสูจน์ได้ยากมากที่จะนำไปใช้ ฉันพบรหัสในไฟล์ Trunmed.c ของรหัสสำหรับแพ็คเกจสถิติของ R แต่มันค่อนข้างจะอ่านไม่ออก มีใครรู้จักการใช้งาน C ที่เขียนมาอย่างดีสำหรับอัลกอริธึมค่ามัธยฐานการหมุนเวลาเชิงเส้นหรือไม่? แก้ไข: ลิงก์ไปยังโค้ด Trunmed.c http://google.com/codesearch/p?hl=th&amp;sa=N&amp;cd=1&amp;ct=rc#mYw3h_Lb_e0/R-2.2.0/src/library/stats/src/Trunmed.c
114 c  algorithm  r  statistics  median 

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