เมื่อฉันออกจากเชลล์ R แบบโต้ตอบมันจะแสดงข้อความแจ้งที่น่ารำคาญทุกครั้ง:
> > บันทึกภาพพื้นที่ทำงานไหม [y / n / c]: น
ฉันมักจะตอบว่า "ไม่" เพราะถ้าฉันต้องการบันทึกงานของฉันฉันจะทำก่อนที่จะพยายามออก
จะกำจัดพรอมต์ได้อย่างไร?
หมายเหตุ: ดู ?save.image
เมื่อฉันออกจากเชลล์ R แบบโต้ตอบมันจะแสดงข้อความแจ้งที่น่ารำคาญทุกครั้ง:
> > บันทึกภาพพื้นที่ทำงานไหม [y / n / c]: น
ฉันมักจะตอบว่า "ไม่" เพราะถ้าฉันต้องการบันทึกงานของฉันฉันจะทำก่อนที่จะพยายามออก
จะกำจัดพรอมต์ได้อย่างไร?
หมายเหตุ: ดู ?save.image
R --vanilla
q()ฟังก์ชันที่กำหนดเองใน. rprofie: stackoverflow.com/a/13043239/180892
คำตอบ:
คุณสามารถส่งผ่าน--no-saveอาร์กิวเมนต์บรรทัดคำสั่งเมื่อคุณเริ่ม R หรือคุณสามารถแทนที่qฟังก์ชัน:
utils::assignInNamespace(
"q",
function(save = "no", status = 0, runLast = TRUE)
{
.Internal(quit(save, status, runLast))
},
"base"
)
ใส่รหัสด้านบนใน. Rprofile ของคุณเพื่อให้ถูกเรียกใช้เมื่อเริ่มต้นทุกเซสชัน
ยังไม่พบโซลูชัน Linux ที่ง่ายที่สุด :)
ใน Ubuntu ให้เพิ่มบรรทัดต่อไปนี้ใน~/.bashrc:
alias R='R --no-save'
ทุกครั้งที่คุณเริ่มคอนโซล R Rมันจะถูกส่งผ่าน--no-saveตัวเลือก
R --vanilla Combine --no-save, --no-restore, --no-site-file, --no-init-file and --no-environ
คุณสามารถออกจากพรอมต์" Save workspace image? " โดยใช้Ctrl+Dไฟล์.
ดังนั้นหากคุณทำCtrl+Dสองครั้งใน R แบบโต้ตอบคุณจะออกจาก R โดยไม่บันทึกพื้นที่ทำงานของคุณ
(ทดสอบบน Linux และ OS X)
หากคุณใช้ Rgui ให้คลิกขวาที่ไอคอนที่คุณใช้เพื่อเริ่ม R และคลิกที่ "Properties" จากนั้นเพิ่ม --no-save ในคำสั่งที่เริ่ม R
(จากhttp://tolstoy.newcastle.edu.au/R/help/05/03/1115.html )
หากคุณใช้โปรแกรมแก้ไขอื่นที่ไม่ใช่ Rgui คุณต้องส่ง --no-save ไปที่บรรทัดคำสั่ง R เมื่อเริ่ม R
เขียนทับตัวเลือกเริ่มต้นสำหรับบันทึกอาร์กิวเมนต์ของฟังก์ชันออก
formals(quit)$save <- formals(q)$save <- "no"
ใส่บรรทัดนี้ใน. Rprofile
แก้ไข: เพิ่มqดังนั้นจึงไม่มีข้อความแจ้งไม่ว่าจะใช้ตัวแปรใด
รับสิ่งที่ดีที่สุดจากทั้งสองกลยุทธ์ที่กำหนดโดยผู้ใช้1และ2 :
ค่าเริ่มต้นที่จะไม่บันทึกโดยเพิ่มบรรทัดต่อไปนี้ใน ~ / .bashrc ของคุณ:
alias R='R --no-save'
แต่ให้วิธีง่ายๆในการประหยัดเมื่อออกโดยเพิ่มสิ่งนี้ใน ~ / .Rprofile:
qs <- function(save="yes") { q(save=save)}
ตอนนี้q()จะออกโดยไม่บันทึกหรือแจ้ง แต่qs()จะบันทึกและออก (โดยไม่ต้องแจ้ง)
wq <- function() { q(save="yes")}จะสะท้อนให้เห็นถึง vi (เช่นกันหากคุณกำลังเขียนฟังก์ชันเขียนทับทำไมไม่ทำให้มันส่งอาร์กิวเมนต์คงที่)
คุณสามารถเพิ่มqq()ฟังก์ชันลงในไฟล์. Rprofile ได้อย่างง่ายดาย
qq <- function(save="no") { q(save=save)}
ฉันคิดว่าตัวเลือกการบันทึกมีให้ใช้งานได้ แต่คำตอบของ Joshua นั้นดีที่สุด
ถ้าเช่นฉันการพิมพ์วงเล็บทั้งคู่ดูเหมือนจะพยายามมากเกินไปในการออกจากการจำลองคุณสามารถลองสิ่งนี้:
exit <- structure(list(), class = "exit_command")
print.exit_command <- function(...) {
q("no") # exit without saving
}
สิ่งนี้จะสร้างคลาสใหม่ซึ่งทำให้ R ออกจากการทำงานเมื่อพยายามพิมพ์คลาสดังกล่าว ผลที่สุดคือถ้าคุณเรียกใช้exitใน R repl ทุกอย่างจะออก (เพราะมันพยายามพิมพ์)
หมายเหตุ: คุณสามารถเพิ่ม~/.Rprofileเพื่อโหลดเมื่อเริ่มต้นทุกเซสชัน
เพียงแค่หลีกเลี่ยงข้อความแจ้งโดยพิมพ์q('no')แทน
คุณสามารถสร้างนามแฝงสำหรับคำสั่ง R:
ใช้ทุบตี :alias R='R --no-save'
ใช้ csh: alias R 'R --no-save'
หากคุณรู้สึกผจญภัยมากพอคุณสามารถแก้ไขstartupส่วนท้ายได้/usr/bin/Rเช่นเพิ่ม--no-saveในการโทรของผู้บริหาร save.image()แต่ถ้าคุณต้องการที่จะประหยัดพื้นที่ทำงานของคุณอย่าลืม
/usr/bin- และขอไม่แนะนำให้คุณทำเช่นนั้น นั่นคือพื้นที่ของระบบ "ห้ามบุคลากรที่ไม่ได้รับอนุญาต"
/usrให้โรบ็อต (ฉันหมายถึงผู้จัดการแพ็คเกจ) เนื่องจากพวกเขาจัดการพื้นที่นั้นแล้ว มีวิธีที่จะไม่รบกวน มิฉะนั้นคุณกำลังแสวงหาการผจญภัยโดยเจตนา