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

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

5
data.table สอดแทรกค่า NA ในเชิงเส้นโดยไม่มีกลุ่ม
ฉันต้องการเติมค่า NA บางส่วนใน data.table โดยไม่มีกลุ่ม โปรดพิจารณาสารสกัดของ data.table นี้แทนเวลาและระยะทาง: library(data.table) df <- data.frame(time = seq(7173, 7195, 1), dist = c(31091.33, NA, 31100.00, 31103.27, NA, NA, NA, NA, 31124.98, NA,31132.81, NA, NA, NA, NA, 31154.19, NA, 31161.47, NA, NA, NA, NA, 31182.97)) DT<- data.table(df) ฉันต้องการใน DT data.table เพื่อเติมค่า NA ด้วยฟังก์ชันขึ้นอยู่กับค่าที่ไม่ใช่ NA ก่อน …
18 r  data.table 

3
การปรับฟังก์ชั่นวัตถุประสงค์ R ให้เหมาะสมกับ Rcpp ช้าลงทำไม?
ขณะนี้ฉันกำลังทำงานกับวิธีแบบเบย์ที่ต้องการหลายขั้นตอนของการเพิ่มประสิทธิภาพของแบบจำลองการบันทึกหลายส่วนต่อการวนซ้ำ ฉันใช้ optim () เพื่อดำเนินการ optimisations เหล่านั้นและฟังก์ชั่นวัตถุประสงค์ที่เขียนใน R การทำโปรไฟล์เปิดเผยว่า optim () เป็นคอขวดหลัก หลังจากขุดไปรอบ ๆ ฉันพบคำถามนี้ซึ่งพวกเขาแนะนำว่าการบันทึกฟังก์ชันวัตถุประสงค์ด้วยRcppสามารถทำให้กระบวนการเร็วขึ้น ฉันทำตามข้อเสนอแนะและบันทึกฟังก์ชั่นวัตถุประสงค์ของฉันRcppใหม่ แต่มันก็ช้าลง (ช้าลงประมาณสองเท่า!) นี่เป็นครั้งแรกของฉันที่มีRcpp(หรืออะไรก็ตามที่เกี่ยวข้องกับ C ++) และฉันไม่สามารถหาวิธีการเขียนโค้ดเวกเตอร์ได้ มีความคิดอย่างไรที่จะทำให้เร็วขึ้น? Tl; dr: การใช้งานฟังก์ชั่นปัจจุบันใน Rcpp ไม่เร็วเท่ากับ vectorised R; จะทำให้เร็วขึ้นได้อย่างไร? ตัวอย่างที่ทำซ้ำได้ : 1) กำหนดฟังก์ชั่นวัตถุประสงค์ในRและRcpp: ความน่าจะเป็นของการสกัดกั้นแบบจำลองแบบมัลติโนเมียลเท่านั้น library(Rcpp) library(microbenchmark) llmnl_int <- function(beta, Obs, n_cat) { n_Obs <- length(Obs) Xint <- matrix(c(0, …
16 c++  r  optimization  rcpp 

3
กำหนดชื่อฟังก์ชันภายในฟังก์ชันนั้น
ฉันจะรับชื่อฟังก์ชันในฟังก์ชันที่ไม่ระบุชื่อนั้นได้อย่างไร ด้านล่างฉันคิดว่ามีฟังก์ชั่นหรือกระบวนการในการทำสิ่งนี้เรียกว่าmagical_r_function()และสิ่งที่คาดว่าจะเป็น my_fun <- function(){ magical_r_function() } my_fun() ## [1] "my_fun" foo_bar <- function(){ magical_r_function() } foo_bar() ## [1] "foo_bar" ballyhoo <- function(){ foo_bar() } ballyhoo() ## [1] "foo_bar" tom_foolery <- foo_bar tom_foolery() ## [1] "tom_foolery"
15 r 

1
ข้อ จำกัด ของ seq.int คืออะไร
seqหน้าคนกล่าวดังต่อไปนี้ (เหมืองเน้น): ลักษณะ สร้างลำดับปกติ seqเป็นมาตรฐานทั่วไปที่มีวิธีการเริ่มต้น seq.intเป็นแบบดั้งเดิมซึ่งสามารถเร็วกว่ามากแต่มีข้อ จำกัดเล็กน้อย หน้านี้ไม่ได้อธิบายถึงข้อ จำกัด เหล่านั้นอย่างแท้จริง นี่คือการกล่าวถึงอื่น ๆ ของที่seq.intนั่น: ข้อโต้แย้ง [ ... ] length.outความยาวที่ต้องการของลำดับ ตัวเลขที่ไม่เป็นลบซึ่งสำหรับseqและseq.intจะถูกปัดเศษขึ้นหากเป็นเศษส่วน [ ... ] รายละเอียด [ ... ] การตีความของอาร์กิวเมนต์ที่ไม่มีชื่อของseqและseq.intไม่ได้เป็นมาตรฐานและแนะนำให้ตั้งชื่ออาร์กิวเมนต์ทุกครั้งที่ตั้งโปรแกรม [ ... ] seq.intเป็นตัวเลือกทั่วไปภายในซึ่งแจกจ่ายวิธีการสำหรับ " seq" โดยอ้างอิงคลาสของอาร์กิวเมนต์แรกที่ระบุ (ก่อนการจับคู่อาร์กิวเมนต์) seq.int, seq_alongและseq_lenดั้งเดิม ราคา seq.intและวิธีการเริ่มต้นของseqอาร์กิวเมนต์ที่เป็นตัวเลขจะคืนค่าเวกเตอร์ประเภท " integer" หรือ " double": โปรแกรมเมอร์ไม่ควรขึ้นอยู่กับว่า นอกเหนือจากการระบุว่าseq.intยื้อseqตามระดับของอาร์กิวเมนต์แรกของมันฉันไม่เห็น "ข้อ จำกัด " ใด …
15 r 

4
ใช้ R เพื่อแก้ปัญหาเกม Lucky 26
ฉันพยายามแสดงให้ลูกชายเห็นว่าการเขียนโค้ดสามารถใช้ในการแก้ปัญหาที่เกิดจากเกมได้อย่างไรรวมถึงการเห็นว่า R จัดการกับข้อมูลขนาดใหญ่ได้อย่างไร เกมดังกล่าวมีชื่อว่า "Lucky 26" ในเกมนี้หมายเลข (1-12 โดยไม่มีการซ้ำซ้อน) ถูกวางตำแหน่งที่ 12 คะแนนบนดาวของดาวิด (6 จุดยอด, 6 ทางแยก) และ 6 บรรทัดของ 4 หมายเลขทั้งหมดต้องเพิ่มเป็น 26 จากความเป็นไปได้ประมาณ 479 ล้าน (12P12 ) เห็นได้ชัดว่ามี 144 โซลูชั่น ฉันพยายามที่จะรหัสนี้ใน R ดังนี้ แต่หน่วยความจำเป็นปัญหาดูเหมือนว่า ฉันขอขอบคุณคำแนะนำใด ๆ ที่จะตอบคำถามหากสมาชิกมีเวลา ขอบคุณสมาชิกล่วงหน้า library(gtools) x=c() elements <- 12 for (i in 1:elements) { x[i]<-i } …
15 r  bigdata  permutation 


2
ฉันจะบอกได้อย่างไรว่ามีหลายแง่มุมของ ggplot โดยทางโปรแกรม
ด้านล่างคือรหัสและกราฟ กราฟมีสามแง่มุม the_plotฉันจะหาได้จากที่ไหนในสามแง่มุม? ใช่ฉันสามารถหาได้จากmtcarsdata frame หรือthe_plot$dataแต่ฉันไม่ต้องการสร้างการวิเคราะห์ข้อมูลขึ้นมาใหม่ แต่ฉันต้องการตรวจสอบองค์ประกอบกราฟิกของthe_plotดังนั้นฉันไม่ต้องทำซ้ำตรรกะของแอปพลิเคชันในหลาย ๆ ที่ the_plot$facetไม่แสดงสิ่งที่ฉันจำได้และไม่ทำตัวแปรพล็อตอื่น ฉันใช้ tidyverse 1.3.0 library(tidyverse) data(mtcars) the_plot<-ggplot(mtcars, aes(mpg, disp, group=cyl)) + facet_wrap(~cyl) + geom_point() the_plot
13 r  ggplot2 

3
การใช้การประเมินที่ไม่ได้มาตรฐานตามระเบียบในการถอดรหัสในด้านขวามือของการกลายพันธุ์
ลองพิจารณาดูซิว่าแต่ละคอลัมน์เป็นเวกเตอร์ของตัวละครที่สามารถมีค่าได้มากมายสมมติว่า "A" ถึง "F" library(tidyverse) sample_df <- tibble(q1 = c("A", "B", "C"), q2 = c("B", "B", "A")) ฉันต้องการสร้างฟังก์ชั่นที่ใช้ชื่อคอลัมน์เป็นอาร์กิวเมนต์และ recodes คอลัมน์นั้นเพื่อให้คำตอบ "A" ใด ๆ กลายเป็น NA และ df จะถูกส่งกลับตามที่เป็นอยู่ เหตุผลในการออกแบบด้วยวิธีนี้คือเพื่อให้พอดีกับไปป์ไลน์ที่กว้างขึ้นที่ดำเนินการชุดของการดำเนินงานโดยใช้คอลัมน์ที่กำหนด มีหลายวิธีในการทำเช่นนี้ แต่ฉันสนใจที่จะเข้าใจว่าวิธีที่ดีที่สุดในการใช้สำนวน tidy_eval / tidyverse อันดับแรกชื่อคำถามต้องอยู่ทางด้านซ้ายของกริยากลายพันธุ์ดังนั้นเราจึงใช้!!และ:=ตัวดำเนินการอย่างเหมาะสม แต่แล้วจะวางอะไรไว้ทางด้านขวามือ? fix_question <- function(df, question) { df %>% mutate(!!question := recode(... something goes here...)) } …
13 r  dplyr  rlang  tidyeval  nse 

1
วิธีหมุนกาดาต้าดาต้ารูมประกอบด้วยคอลัมน์พร้อมส่วนและส่วนย่อยใน R
ฉันมีชื่อไฟล์ด้านล่าง: structure( list(ID = c("P-1", " P-1", "P-1", "P-2", "P-3", "P-4", "P-5", "P-6", "P-7", "P-8"), Date = c("2020-03-16 12:11:33", "2020-03-16 13:16:04", "2020-03-16 06:13:55", "2020-03-16 10:03:43", "2020-03-16 12:37:09", "2020-03-16 06:40:24", "2020-03-16 09:46:45", "2020-03-16 12:07:44", "2020-03-16 14:09:51", "2020-03-16 09:19:23"), Status = c("SA", "SA", "SA", "RE", "RE", "RE", "RE", "XA", "XA", "XA"), Flag …

6
จะทราบได้อย่างไรว่าเวกเตอร์ประกอบด้วยองค์ประกอบเดียวกัน?
ฉันจะตรวจสอบได้อย่างไรว่าเวกเตอร์มีองค์ประกอบเดียวกันทั้งหมดหรือไม่ เช่นสมมติว่าฉันมี: vec1 = rep(10,20) vec2 = seq(1:20) ฉันจะแสดงให้เห็นว่าvec1มีองค์ประกอบเดียวกันทั้งหมดได้อย่างไร
12 r  vector  unique 

1
ประโยชน์ด้านประสิทธิภาพของการโยงกับ ANDing เมื่อกรองตารางข้อมูล
ฉันติดนิสัยที่คล้ายกันในการทำงานเป็นแถวเดียว ตัวอย่างเช่นถ้าฉันต้องกรองa, bและcในตารางข้อมูลผมจะนำพวกเขาเข้าด้วยกันในหนึ่ง[]กับ ANDs เมื่อวานนี้ฉันสังเกตเห็นว่าในกรณีของฉันนี่เป็นตัวกรองช้าและเหลือเชื่อแทนการทดสอบ ฉันได้รวมตัวอย่างด้านล่างแล้ว ก่อนอื่นฉันจะสร้างตัวสร้างตัวเลขสุ่มโหลดdata.tableและสร้างชุดข้อมูลจำลอง # Set RNG seed set.seed(-1) # Load libraries library(data.table) # Create data table dt <- data.table(a = sample(1:1000, 1e7, replace = TRUE), b = sample(1:1000, 1e7, replace = TRUE), c = sample(1:1000, 1e7, replace = TRUE), d = runif(1e7)) ต่อไปฉันจะกำหนดวิธีการของฉัน วิธีแรกโซ่กรองด้วยกัน อันที่สอง ANDs …
12 r  data.table 

1
การเปรียบเทียบฟังก์ชัน "ตัวอย่าง" ใน R
ฉันกำลังเปรียบเทียบsampleฟังก์ชันใน R และเปรียบเทียบกับigraph:sample_seqและวิ่งไปสู่ผลลัพธ์ที่แปลก เมื่อฉันเรียกใช้บางสิ่งเช่น: library(microbenchmark) library(igraph) set.seed(1234) N <- 55^4 M <- 500 (mbm <- microbenchmark(v1 = {sample(N,M)}, v2 = {igraph::sample_seq(1,N,M)}, times=50)) ฉันได้รับผลลัพธ์เช่นนี้: Unit: microseconds expr min lq mean median uq max neval v1 21551.475 22655.996 26966.22166 23748.2555 28340.974 47566.237 50 v2 32.873 37.952 82.85238 81.7675 96.141 358.277 50 แต่เมื่อฉันวิ่งเช่น …
11 r  random 

2
ความงามของอัลฟ่าแสดงให้เห็นโครงกระดูกของลูกศรแทนที่จะเป็นรูปร่างธรรมดา - จะป้องกันได้อย่างไร?
ฉันกำลังตั้งเป้าที่จะสร้างบาร์ที่มีลูกศรที่ท้ายบาร์ ฉันไปgeom_segmentด้วยคำarrowจำกัดความ ฉันต้องการแมปหนึ่งคอลัมน์ลงบนความโปร่งใส แต่ความสวยงามของอัลฟ่าดูเหมือนจะไม่ทำงานกับวัตถุลูกศร นี่คือข้อมูลโค้ด: tibble(y = c(10, 20, 30), n = c(300, 100, 200), transparency = c(10, 2, 4)) %>% ggplot() + geom_segment(aes(x = 0, xend = n, y = y, yend = y, alpha = transparency), colour = 'red', size = 10, arrow = arrow(length = unit(1.5, 'cm'), …
11 r  ggplot2  geom-bar 

6
ระบุและทำเครื่องหมายแถวที่ซ้ำกันใน r
ฉันต้องการระบุและทำเครื่องหมายแถวที่ซ้ำกันโดยยึดตาม 2 คอลัมน์ ฉันต้องการสร้างตัวระบุที่ไม่ซ้ำกันสำหรับแต่ละรายการที่ซ้ำกันดังนั้นฉันจึงรู้ว่าไม่ใช่ว่าแถวนั้นซ้ำกัน แต่แถวใดที่ซ้ำกัน ฉันมี dataframe ที่มีลักษณะเหมือนด้านล่างพร้อมคู่รายการที่ซ้ำกันบางรายการ (แบบพอดีและแบบนั่ง) และคู่อื่น ๆ ที่ไม่ได้ทำซ้ำ ในขณะที่คู่ไอเท็มมีการทำซ้ำข้อมูลที่มีอยู่จะไม่ซ้ำกัน (เช่นหนึ่งแถวจะมีค่าใน Value1 สำหรับ 1 แถว แต่ไม่ใช่ Value2 และ Value 3 แถวที่สองหรือ 'ซ้ำ' จะมีตัวเลขสำหรับ Value2 และ Value3 เพียง ไม่ใช่ค่า 1) dataframe ปัจจุบัน value1 value2 value3 fit sit [1,] "1" NA NA "it1" "it2" [2,] NA "3" "2" "it2" …
11 r  dataframe 

6
แยกคอลัมน์อักขระและรับชื่อฟิลด์ในสตริง
ฉันต้องการแยกคอลัมน์ที่มีข้อมูลออกเป็นหลายคอลัมน์ ฉันต้องการใช้tstrsplitแต่ข้อมูลชนิดเดียวกันนั้นไม่ได้อยู่ในลำดับเดียวกันในแถวต่างๆและฉันต้องการแยกชื่อของคอลัมน์ใหม่ภายในตัวแปร สิ่งสำคัญที่ควรทราบ: อาจมีข้อมูลจำนวนมาก (ฟิลด์เป็นตัวแปรใหม่) และฉันไม่รู้จักทั้งหมดดังนั้นฉันไม่ต้องการโซลูชัน "ฟิลด์ต่อฟิลด์" ด้านล่างเป็นตัวอย่างของสิ่งที่ฉันมี: library(data.table) myDT <- structure(list(chr = c("chr1", "chr2", "chr4"), pos = c(123L, 435L, 120L), info = c("type=3;end=4", "end=6", "end=5;pos=TRUE;type=2" )), class = c("data.table", "data.frame"), row.names = c(NA,-3L)) # chr pos info #1: chr1 123 type=3;end=4 #2: chr2 435 end=6 #3: chr4 120 end=5;pos=TRUE;type=2 …
11 r  data.table  reshape 

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