"작업 공간 이미지를 저장 하시겠습니까?"를 비활성화하는 방법 R에서 프롬프트?


92

대화 형 R 셸을 종료하면 매번 성가신 프롬프트가 표시됩니다.

>
>
작업 공간 이미지를 저장 하시겠습니까? [y / n / c] : n

나는 항상 "아니오"라고 대답합니다. 작업을 저장하고 싶다면 종료 하기 전에 그렇게 할 것이기 때문 입니다.

프롬프트를 제거하는 방법?


참고 : 참조 ?save.image


7
@Spacedman : Windows에서는 Ctrl + Z이므로 아무 것도 "실행 취소"하지 마십시오. ;-)
Joshua Ulrich

3
GNU / Linux에서 시작R --vanilla
aL3xa

사용자 정의 사용이 대답을 참조 q().Rprofie의 기능 : stackoverflow.com/a/13043239/180892
제로미 Anglim

5
그만한 가치를 위해 RStudio에는 이에 대한 기본 설정 후크가 있습니다
Ben Bolker 2011

2
fwiw (또한), 이것은 radian R 콘솔 의 기본 동작입니다 .
Keith Hughitt 19:51에

답변:


76

--no-saveR을 시작할 때 명령 줄 인수를 전달 하거나 q함수를 재정의 할 수 있습니다 .

utils::assignInNamespace(
  "q", 
  function(save = "no", status = 0, runLast = TRUE) 
  {
    .Internal(quit(save, status, runLast))
  }, 
  "base"
)

위의 코드를 .Rprofile에 넣으면 모든 세션이 시작될 때 실행됩니다.



2
Defaults 패키지를 설치하고 위의 코드를 내 Rprofile.site 파일에 추가 한 후 (Windows 7에서 R 2.15.1 실행) 다음 오류가 발생합니다. "bindingIsLocked (name, as.environment (find (name)) 오류) ) : '발견' "기능을 찾을 수 없습니다
존 D. 쿡

2
Defaults 패키지가 제거 된 것 같습니다.
Praxeolitic 2014

1
"오류 :"assignInNamespace "기능을 찾을 수 없습니다"라는 메시지가 나타납니다. OS X에 R 3.1.2
조쉬 한센

5
당신의 .Rprofile에 @Josh 한센 추가 라이브러리 (유틸)는 assignInNamespace 찾을 수
FXQuantTrader

31

아직 가장 쉬운 Linux 솔루션을 찾지 못했습니다. :)

우분투에서 다음 줄을 추가하십시오 ~/.bashrc.

alias R='R --no-save'

로 R 콘솔을 시작할 때마다 옵션 R이 전달됩니다 --no-save.


2
aL3xa 사용 위의 코멘트에 지정된 @ 또는 R --vanilla결합합니다 Combine --no-save, --no-restore, --no-site-file, --no-init-file and --no-environ.
Paul Rougieux

23

" Save workspace image? "프롬프트를 Ctrl+D.

따라서 Ctrl+D대화 형 R에서 두 번 수행 하면 작업 공간을 저장하지 않고 R을 종료합니다.

(Linux 및 OS X에서 테스트 됨)


11

Rgui를 사용하는 경우 R을 시작하는 데 사용하는 아이콘을 마우스 오른쪽 버튼으로 클릭하고 "속성"을 클릭 한 다음 R을 시작하는 명령에 --no-save를 추가합니다.

( http://tolstoy.newcastle.edu.au/R/help/05/03/1115.html에서 )

Rgui와 다른 편집기를 사용하는 경우 R을 시작할 때 R 명령 줄에 --no-save를 전달해야합니다.


속성 탭의 스크린 샷을 공유해 주시겠습니까?
Ashrith

8

종료 함수의 저장 인수에 대한 기본 옵션 덮어 쓰기

formals(quit)$save <- formals(q)$save <- "no"

이 줄을 .Rprofile에 넣으십시오.

편집 : 추가 q되었으므로 어떤 변형이 사용 되든 프롬프트가 없습니다.


> formals (quit) $ save <- "no"> q () 작업 공간 이미지를 저장 하시겠습니까? [y / n / c] :
O.rka

5

qq().Rprofile 파일에 기능을 쉽게 추가 할 수 있습니다.

 qq <- function(save="no") { q(save=save)}

옵션과 함께 저장 옵션을 사용할 수 있다고 생각했지만 Joshua의 대답이 가장 좋습니다.


5

mreqBondedDust가 제공하는 두 가지 전략 모두를 최대한 활용하십시오 .

~ / .bashrc에 다음 줄을 추가하여 저장하지 않도록 기본 설정합니다.

alias R='R --no-save'

그러나 이것을 ~ / .Rprofile에 추가하여 종료시 저장하는 쉬운 방법을 제공하십시오.

qs <- function(save="yes") { q(save=save)}

따라서 이제 q()저장 (또는 프롬프트)없이 종료되지만 qs()저장 및 종료 (또한 프롬프트없이)


3

q('no')대신 입력하여 프롬프트를 피하는 것은 어떻습니까?


20
.. 프롬프트에 응답하는 것보다 훨씬 더 많은 키보드 히트입니다 :-)
TMS

3

나처럼 괄호 전체를 입력하는 것이 repl을 종료하는 데 너무 많은 노력을 기울이는 것처럼 보이면 다음을 시도해 볼 수 있습니다.

exit <- structure(list(), class = "exit_command")

print.exit_command <- function(...) {
  q("no")  # exit without saving
}

이렇게하면 새 클래스가 생성되어 해당 클래스를 인쇄하려고 할 때 R이 종료됩니다. 결론은 exitR repl에서 실행 하면 모든 것이 종료된다는 것입니다 (인쇄를 시도하기 때문에).

참고 : ~/.Rprofile모든 세션이 시작될 때로드하도록 에 추가 할 수 있습니다 .


2

R 명령에 대한 별칭을 만들 수 있습니다.

bash 사용 :alias R='R --no-save'

csh 사용 : alias R 'R --no-save'


-2

충분히 모험심을 느낀다면 startup의 끝에 있는 섹션을 편집 할 수도 있습니다 /usr/bin/R. 즉 --no-save, exec 호출에 추가 할 수 있습니다. 그러나 작업 공간을 저장해야하는 경우 save.image().


1
저는 아래에서 직접 편집 한 적이 없으며 그렇게 하지/usr/bin 않도록 강력히 권장합니다. 이것이 바로 시스템 영역입니다. "승인되지 않은 사람은 금지됩니다".
ulidtko 2015

3
@ulidtko 내 시스템이라면 권한이 있습니다. :) 이것이 좋은 생각이 아닌 진짜 이유는 향후 업그레이드로 덮어 쓸 것이기 때문이라고 생각합니다.
Michael Mior

@MichaelMior 예, 당신은 절대적으로 정확합니다. 그러나 : 인간은 엉망입니다. 항상. 단순한 지침 일뿐입니다. 정당한 이유가 없다면 /usr로봇 (패키지 관리자)에게 맡기십시오 . 이미 해당 영역을 관리하고 있기 때문입니다. 방해하지 않는 방법이 있습니다. 그렇지 않으면 의도적으로 모험을 찾고 있습니다.
ulidtko
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.