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

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

7
วิธี“ แก้ไข” เพื่อระบุอาร์กิวเมนต์ที่เลือกระบุได้ในฟังก์ชัน R
ฉันสนใจในสิ่งที่เป็น "วิธีที่ถูกต้อง" ในการเขียนฟังก์ชันด้วยอาร์กิวเมนต์ที่เป็นตัวเลือกใน R เมื่อเวลาผ่านไปฉันสะดุดโค้ดสองสามชิ้นที่ใช้เส้นทางอื่นที่นี่และฉันไม่สามารถหาตำแหน่งที่เหมาะสม (เป็นทางการ) ในหัวข้อนี้ จนถึงตอนนี้ฉันได้เขียนข้อโต้แย้งเพิ่มเติมดังนี้: fooBar <- function(x,y=NULL){ if(!is.null(y)) x <- x+y return(x) } fooBar(3) # 3 fooBar(3,1.5) # 4.5 ฟังก์ชั่นเพียงแค่ส่งกลับข้อโต้แย้งของมันถ้าxมีให้เท่านั้น มันใช้ค่าเริ่มต้นNULLสำหรับอาร์กิวเมนต์ที่สองและหากอาร์กิวเมนต์นั้นไม่เป็นNULLเช่นนั้นฟังก์ชันจะเพิ่มตัวเลขสองตัว อีกทางเลือกหนึ่งสามารถเขียนฟังก์ชั่นเช่นนี้ (โดยที่อาร์กิวเมนต์ที่สองจำเป็นต้องระบุด้วยชื่อ แต่สามารถunlist(z)ระบุหรือกำหนดz <- sum(...)แทนได้): fooBar <- function(x,...){ z <- list(...) if(!is.null(z$y)) x <- x+z$y return(x) } fooBar(3) # 3 fooBar(3,y=1.5) # 4.5 ส่วนตัวแล้วฉันชอบเวอร์ชั่นแรกมากกว่า อย่างไรก็ตามฉันเห็นทั้งดีและไม่ดีได้ทั้งคู่ …
165 r  function 

8
reshaping data.frame จากรูปแบบกว้างถึงยาว
ฉันมีปัญหาในการแปลงdata.frameจากตารางกว้างเป็นตารางยาว ในขณะนี้ดูเหมือนว่านี้: Code Country 1950 1951 1952 1953 1954 AFG Afghanistan 20,249 21,352 22,532 23,557 24,555 ALB Albania 8,097 8,986 10,058 11,123 12,246 ตอนนี้ฉันต้องการที่จะเปลี่ยนนี้เป็นเวลานานdata.frame data.frameบางสิ่งเช่นนี้ Code Country Year Value AFG Afghanistan 1950 20,249 AFG Afghanistan 1951 21,352 AFG Afghanistan 1952 22,532 AFG Afghanistan 1953 23,557 AFG Afghanistan 1954 24,555 ALB …
164 r  dataframe  reshape  r-faq 

29
ไม่ได้สร้างเซสชัน: ChromeDriver รุ่นนี้รองรับข้อผิดพลาด Chrome รุ่น 74 เท่านั้นกับ ChromeDriver Chrome โดยใช้ Selenium
ฉันพยายามเรียกใช้ RSelenium โดยใช้ฟังก์ชั่น rsDriver แต่เมื่อฉันเรียกใช้ rD <- rsDriver() ฉันได้รับข้อความแจ้งว่าฉันต้องการ Chrome เวอร์ชันใหม่กว่า: > rD <- rsDriver() checking Selenium Server versions: BEGIN: PREDOWNLOAD BEGIN: DOWNLOAD BEGIN: POSTDOWNLOAD checking chromedriver versions: BEGIN: PREDOWNLOAD BEGIN: DOWNLOAD BEGIN: POSTDOWNLOAD checking geckodriver versions: BEGIN: PREDOWNLOAD BEGIN: DOWNLOAD BEGIN: POSTDOWNLOAD checking phantomjs versions: BEGIN: PREDOWNLOAD BEGIN: DOWNLOAD …

7
การกำหนดหมายเลขแถวภายในกลุ่มในกรอบข้อมูล
การทำงานกับ data frame คล้ายกับสิ่งนี้: set.seed(100) df <- data.frame(cat = c(rep("aaa", 5), rep("bbb", 5), rep("ccc", 5)), val = runif(15)) df <- df[order(df$cat, df$val), ] df cat val 1 aaa 0.05638315 2 aaa 0.25767250 3 aaa 0.30776611 4 aaa 0.46854928 5 aaa 0.55232243 6 bbb 0.17026205 7 bbb 0.37032054 8 bbb 0.48377074 …
163 r  dataframe  r-faq 

11
แปลง data.frame คอลัมน์เป็นเวกเตอร์หรือไม่?
ฉันมีชื่อไฟล์เช่น: a1 = c(1, 2, 3, 4, 5) a2 = c(6, 7, 8, 9, 10) a3 = c(11, 12, 13, 14, 15) aframe = data.frame(a1, a2, a3) ฉันพยายามต่อไปนี้เพื่อแปลงคอลัมน์ใดคอลัมน์หนึ่งเป็นเวกเตอร์ แต่มันไม่ทำงาน: avector <- as.vector(aframe['a2']) class(avector) [1] "data.frame" นี่เป็นทางออกเดียวที่ฉันสามารถทำได้ แต่ฉันคิดว่าต้องมีวิธีที่ดีกว่าในการทำสิ่งนี้: class(aframe['a2']) [1] "data.frame" avector = c() for(atmp in aframe['a2']) { avector <- atmp …

12
เข้าถึงชื่อดัชนี lapply ภายใน FUN
มีวิธีรับชื่อดัชนีรายการในฟังก์ชัน lapply () ของฉันหรือไม่ n = names(mylist) lapply(mylist, function(list.elem) { cat("What is the name of this list element?\n" }) ฉันถามก่อนว่าเป็นไปได้หรือไม่ที่จะรักษาชื่อดัชนีในรายการคืน lapply () แต่ฉันยังไม่รู้ว่ามีวิธีง่าย ๆ ในการดึงชื่อองค์ประกอบแต่ละรายการภายในฟังก์ชันที่กำหนดเองหรือไม่ ฉันต้องการหลีกเลี่ยงการโทรไปที่ชื่อตัวเองอย่าง lapply ฉันควรได้รับชื่อในพารามิเตอร์ฟังก์ชัน
162 r  lapply  names  indices 

14
ปัญหาในการติดตั้งแพ็คเกจ devtools
ฉันต้องการใช้devtoolsแพ็คเกจนี้ ฉันใช้คำสั่งต่อไปนี้: > install.packages("devtools", dependencies = TRUE) .... > library(devtools) Error in library(devtools) : there is no package called ‘devtools’ ผมทำอะไรผิดหรือเปล่า? แก้ไข: นี่คือผลลัพธ์ของการรันinstall.packagesคำสั่งอีกครั้งหลังจากรีสตาร์ทเซสชัน > install.packages("devtools", dependencies = TRUE) Installing package into ‘/home/evanaad/R/x86_64-pc-linux-gnu-library/3.0’ (as ‘lib’ is unspecified) --- Please select a CRAN mirror for use in this session --- Warning: dependencies …
162 r  package  devtools 

11
วิธีการจัดระเบียบโปรแกรม R ขนาดใหญ่?
เมื่อฉันทำโปรเจกต์ R ของความซับซ้อนใด ๆ สคริปต์ของฉันก็จะยาวและสับสนได้อย่างรวดเร็ว มีวิธีปฏิบัติอะไรบ้างที่ฉันสามารถปรับใช้เพื่อให้รหัสของฉันมีความสุขที่ได้ทำงานด้วยเสมอ ฉันคิดเกี่ยวกับสิ่งที่ชอบ การวางตำแหน่งของฟังก์ชั่นในไฟล์ต้นฉบับ เมื่อจะทำลายบางสิ่งบางอย่างออกไปยังแฟ้มแหล่งอื่น สิ่งที่ควรจะอยู่ในแฟ้มต้นแบบ การใช้ฟังก์ชั่นเป็นหน่วยขององค์กร (ไม่ว่าจะเป็นสิ่งที่คุ้มค่าหรือไม่เพราะ R ทำให้ยากต่อการเข้าถึงสถานะส่วนกลาง) การฝึกการเยื้อง / การแบ่งบรรทัด ปฏิบัติต่อ (เช่น {? ใส่สิ่งที่ชอบ)} ใน 1 หรือ 2 บรรทัด? โดยทั่วไปแล้วกฎข้อง่ายๆในการจัดการสคริปต์ R ขนาดใหญ่คืออะไร?

10
ฉันจะล้างวัตถุเฉพาะบางอย่างจากพื้นที่ทำงานได้อย่างไร
ฉันต้องการลบข้อมูลบางส่วนออกจากพื้นที่ทำงาน ฉันรู้ว่าปุ่ม "ล้างทั้งหมด" จะลบข้อมูลทั้งหมด อย่างไรก็ตามฉันต้องการลบข้อมูลบางอย่างออก ตัวอย่างเช่นฉันมีเฟรมข้อมูลเหล่านี้ในส่วนข้อมูล: data data_1 data_2 data_3 ผมอยากจะลบdata_1, data_2และในขณะที่การรักษาdata_3data ฉันพยายามdata_1 <- data_2 <- data_3 <- NULLที่จะลบข้อมูล (ฉันคิดว่า) แต่ยังคงเก็บไว้ในพื้นที่ทำงานดังนั้นมันจึงไม่ใช่สิ่งที่ฉันอยากทำ
161 r 

13
เปรียบเทียบ data.frames สองรายการเพื่อค้นหาแถวใน data.frame 1 ที่ไม่มีอยู่ใน data.frame 2
ฉันมี 2 data.frames ต่อไปนี้: a1 <- data.frame(a = 1:5, b=letters[1:5]) a2 <- data.frame(a = 1:3, b=letters[1:3]) ฉันต้องการค้นหาแถว a1 ที่ a2 ไม่ได้ มีฟังก์ชันในตัวสำหรับการทำงานประเภทนี้หรือไม่? (ps: ฉันได้เขียนวิธีแก้ปัญหาสำหรับฉันฉันแค่อยากรู้ว่าใครบางคนทำรหัสที่สร้างขึ้นแล้ว) นี่คือทางออกของฉัน: a1 <- data.frame(a = 1:5, b=letters[1:5]) a2 <- data.frame(a = 1:3, b=letters[1:3]) rows.in.a1.that.are.not.in.a2 <- function(a1,a2) { a1.vec <- apply(a1, 1, paste, collapse = "") a2.vec …
161 r  merge  compare  rows  dataframe 

15
วิธีที่เร็วที่สุดในการค้นหาค่าสูงสุด / ต่ำสุดที่สอง (สาม ... ) ในเวกเตอร์หรือคอลัมน์
R เสนอสูงสุดและต่ำสุด แต่ฉันไม่เห็นวิธีที่รวดเร็วจริงๆในการหาค่าอื่นในการสั่งซื้อนอกเหนือจากการจัดเรียงเวกเตอร์ทั้งหมดแล้วเลือกค่า x จากเวกเตอร์นี้ มีวิธีที่เร็วกว่าเพื่อให้ได้ค่าที่สองสูงสุดหรือไม่
161 r  vector 

6
วิธีการป้องกัน ifelse () จากการเปลี่ยนวัตถุวันที่เป็นวัตถุที่เป็นตัวเลข
ฉันใช้ฟังก์ชันนี้ifelse()เพื่อจัดการกับเวกเตอร์วันที่ ฉันคาดหวังว่าผลการเรียนจะดีDateมากและรู้สึกประหลาดใจที่ได้รับnumericเวกเตอร์แทน นี่คือตัวอย่าง: dates <- as.Date(c('2011-01-01', '2011-01-02', '2011-01-03', '2011-01-04', '2011-01-05')) dates <- ifelse(dates == '2011-01-01', dates - 1, dates) str(dates) สิ่งนี้น่าประหลาดใจอย่างยิ่งเพราะการดำเนินการข้ามเวกเตอร์ทั้งหมดส่งคืนDateวัตถุ dates <- as.Date(c('2011-01-01', '2011-01-02', '2011-01-03', '2011-01-04','2011-01-05')) dates <- dates - 1 str(dates) ฉันควรจะใช้ฟังก์ชั่นอื่นเพื่อทำงานกับDateเวกเตอร์หรือไม่? ถ้าเป็นเช่นนั้นฟังก์ชั่นอะไร? ถ้าไม่ฉันifelseจะบังคับให้ส่งคืนเวกเตอร์ประเภทเดียวกันกับอินพุตได้อย่างไร หน้าความช่วยเหลือสำหรับifelseระบุว่านี่เป็นคุณลักษณะไม่ใช่ข้อผิดพลาด แต่ฉันยังคงดิ้นรนเพื่อหาคำอธิบายสำหรับสิ่งที่ฉันพบว่าเป็นพฤติกรรมที่น่าแปลกใจ
161 r  datetime  if-statement 

8
วิธีนับค่า TRUE ในเวกเตอร์เชิงตรรกะ
ใน R วิธีใดที่มีประสิทธิภาพมากที่สุดในการนับจำนวนTRUEค่าในเวกเตอร์เชิงตรรกะ? ฉันนึกได้สองวิธี: z <- sample(c(TRUE, FALSE), 1000, rep = TRUE) sum(z) # [1] 498 table(z)["TRUE"] # TRUE # 498 คุณชอบอันไหน? มีอะไรที่ดีกว่านี้อีกไหม
160 r 

4
เพิ่มแถวใหม่ไปยัง dataframe ที่ดัชนีแถวที่เฉพาะเจาะจงไม่ได้ต่อท้าย?
รหัสต่อไปนี้รวม vector กับ dataframe: newrow = c(1:4) existingDF = rbind(existingDF,newrow) อย่างไรก็ตามรหัสนี้จะแทรกแถวใหม่ที่ส่วนท้ายของ dataframe เสมอ ฉันจะแทรกแถวที่จุดที่ระบุในดาต้าเฟรมได้อย่างไร? ตัวอย่างเช่นสมมติว่า dataframe มี 20 แถวฉันจะแทรกแถวใหม่ระหว่างแถวที่ 10 และ 11 ได้อย่างไร
160 r  dataframe  insert 

4
ทำไมแพนด้าถึงถูกรวมเข้ากับไพ ธ อนเร็วกว่า data.table จึงถูกรวมใน R ในปี 2012?
ฉันเพิ่งเจอห้องสมุดแพนด้าสำหรับงูหลามซึ่งตามมาตรฐานนี้ทำการผสานในหน่วยความจำที่รวดเร็วมาก มันเร็วกว่าแพ็คเกจdata.tableใน R (ภาษาที่ฉันเลือกใช้ในการวิเคราะห์) เหตุใดpandasจึงเร็วกว่าdata.tableมาก เป็นเพราะความได้เปรียบทางด้านความเร็วของงูหลามมีมากกว่า R หรือมีข้อเสียบางอย่างที่ฉันไม่ทราบ? มีวิธีการรวมภายในและภายนอกdata.tableโดยไม่หันไปmerge(X, Y, all=FALSE)และmerge(X, Y, all=TRUE)? นี่คือรหัส Rและรหัส Python ที่ใช้ในการกำหนดมาตรฐานของแพ็คเกจต่างๆ
160 python  r  join  data.table  pandas 

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