[R] "cannot open file 'c:/Users/???/test.R'" : Invalid argument

해당 포스트는 R에서 한글 경로 인식 오류로 인해 발생한 에러를 조치하는 방법에 대해 소개합니다.


error-cannot-open-file-invalid-argument
[출처] 네이버 지식인


문제

Rstudio에서 run버튼을 눌렀을 때는 결과가 잘 나왔는데 source 버튼만 누르면 이런 오류가 떠서요 혹시 와 이런 오류가 뜨는 지 알 수 있을까요?

error-message-cannot-open-file-invalid-argument
[출처] 네이버 지식인

풀이

해당 에러는 Source 메뉴로 코드 실행 시, 작업 디렉토리 경로에 한글이 있어 발생한 에러입니다.
R은 한글 친화적인 언어가 아니기에 프로그래밍 시 한글 사용을 권장하지 않으며, 특히 경로에 한글이 있는 경우에는 패키지 설치나 실행에 오류가 발생할 여지가 있습니다.

만약 R 및 RStudio를 설치한 지 얼마 되지 않으셨다면 아래 링크들을 참고하여 재설치하시는 걸 추천드립니다.

[R] Windows10 에서 R 설치 하기 (1/2)
[R] Windows10 에서 R 설치 하기 (2/2)
[R] Windows10 에서 RStudio 설치 하기 (1/2)
[R] Windows10 에서 RStudio 설치 하기 (2/2)

"cannot open file 'C:/Users/???/Documents/R-test/1.R' : Invalid argument"


위 에러 메시지에 출력된 경로 중 '???'로 표기된 부분이 한글 인식 오류로 출력된 부분이며, 이런 경우에는 작업 디렉토리를 영어로만 이루어진 경로로 변경하고 실행하려는 파일을 해당 경로로 옮겨 실행하면 문제가 해결됩니다.

예를 들어, C드라이브에 mywork 라는 새 폴더를 만들고 myfile.R 이라는 파일을 해당 폴더로 옮겨 Source 를 실행한다면 다음과 같은 절차로 진행하시면 됩니다.

  1. '내 컴퓨터' 실행
  2. 'C 드라이브' 이동
  3. 'mywork' 새 폴더 생성
  4. 'myfile.R' 파일을 'c:/mywork' 폴더로 이동
  5. RStudio 콘솔창에 setwd('c:/mywork') 입력 (작업 디렉토리 설정)
  6. [File] - [Open File] 메뉴로 들어가 'mywork' 폴더의 'myfile.R' 파일 열기
  7. Source 버튼 실행

[추가정보] Run? Source?

RunSource는 내가 작성한 코드를 실행한다는 개념은 같습니다. 다만, Run은 RStudio 편집창에 보여지는 코드들을 실행한다면, Source는 내가 작성한 파일(.R)을 실행한다는 실행 대상의 차이가 있습니다.

RStudio에서 Run 버튼으로 실행하는 것은 콘솔(Console)창에 불러와진 R 환경 내에서 바로 처리가 되기에 작업 디렉토리 경로에 한글 유무는 작업에 영향이 없습니다.

그러나 Source 버튼 실행은 RStudio 내부가 아닌 외부 터미널(명령 프롬프트)에서 실행되기에 작업 디렉토리 경로에 한글이 있는 경우 에러가 발생합니다.

Source 버튼 클릭 시 내부적으로는 Rscript C:/Users/홍길동/Documents/R-test/1.R 의 명령어가 실행되며, 이 과정에서 '홍길동'이라는 한글 폴더명을 인식하지 못해 '???'로 변환되고 'C:/Users/???/Documents/R-test/1.R' 라는 경로 및 파일은 물리적으로 존재하지 않기에 에러가 발생합니다.

마무리

해당 포스트에서는 R을 사용하면서 경로에 한글이 존재하여 발생하는 오류 조치 방법에 대해 설명하였습니다.
R이 한글 친화적인 언어가 아니다보니 패키지 설치, 로딩, 작업 디렉토리 경로 등 다양한 상황에서 한글로 인해 오류가 발생할 여지가 있습니다. 따라서, 가급적이면 R을 사용하는 환경에는 한글보다는 영어와 숫자 조합들을 사용하시는 것을 권장드립니다.

관련 링크

[1] 네이버 지식인