R에서 한글 사용시 고려해야할 것들

한글 Windows에서 R 사용시 주의할 것들

install.packages()의 오류

install.packages()를 call하면 R은 해당 package를 다운로드 받아 library에 저장한다.

  1. R은 첫번째로 C:/Program Files/R/R-x.x.x/library 에 저장을 시도한다.
    • 그런데 Windows에서 C:/Program Files는 보안을 이유로 접근을 제한한 위치이다.

      RLibraryError1.png

  2. 그래서 R은 사용자에게 묻는다. Would you like to create a personal library at C:/Users/계정이름/Documents/R/win-library/x.x?
    • RLibraryError2.png

    • 그런데 저 계정이름이 한글인 경우 R은 인식을 못 한다. 한글을 ??? 로 인식하고 그 폴더를 찾지만 그런 폴더가 있을리가 없지.

      RLibraryError3.png

    • 계정 이름이 영문으로 된 경우는 당연히 아무 문제없다.

해결책

  1. R Library로 쓸 빈 폴더를 하나 만든다. (예: C:\Library\R)
    • 폴더를 만들고자 하는 위치에서 우클릭 -> 새로 만들기 -> 폴더 선택

    • 폴더 이름은 자유롭게 정하면 된다. 다만 한글을 포함하지 않도록 하는 것이 중요하다.
    • C:\기의통\RLibrary -> 역시 곤란하다. '기의통' 부분을 ??? 로 인식하고 찾아다닐 것이다.

    • D:\Rproj\Lib -> 가능함. 한글만 없으면 된다.

  2. [시작] 버튼을 누른 후 키보드로 "제어판"을 입력하여 "제어판"을 실행한다.
  3. [사용자 계정] -> [사용자 계정] -> [환경 변수 변경] 를 선택하고

  4. 리스트에 R_LIBS_USER 가 있는지 확인한다. 있으면 [편집]을 누르고 없으면 [새로 만들기]를 선택한다.
    • 변수 이름: R_LIBS_USER
    • 변수 값: C:\Library\R (위에서 실제로 만들어 둔 폴더를 입력한다)
  5. [확인]을 클릭하여 빠져나온 후, R(혹은 RStudio)를 재시작한다.
  6. R을 재시작하면 앞으로 package는 C:\Library\R 혹은 지정된 폴더로 다운로드 된다.

    • Console에서 Sys.getenv("R_LIBS_USER")를 입력하면 설정이 바뀌었는지 확인 가능하다.

OneDrive에서 한글 인식 오류

  1. OneDrive가 설치된 Windows PC에서는 계정 아래 "문서" 폴더가 R의 기본 폴더로 지정되는데,

  2. "문서"라는 한글을 인식 못 해서 ??? 라는 이름의 폴더를 찾고서는 그런 폴더 없다고 오류 메세지를 내보낸다.

해결책

  1. 위와 같은 방법으로 환경변수를 추가한다.
    • 변수 이름: R_USER
    • 변수 값: 이름에 한글이 없는 폴더 아무거나 (혹은 %USERPROFILE% 라고 하면 사용자의 기본 폴더로 지정된다)

macOS나 Linux에서 고려할 사항

다운로드 받은 한글 데이타가 깨져서 로딩 될 때

한글 encoding 문제임.

문제는 Windows system에서 작성된 한글 text 파일을 Unix(macOS 포함)나 Linux(RStudio.cloud 포함)에서 읽을 때 일어남.

   1 df <- read.csv('데이타.csv', fileEncoding = 'euc-kr')
   2 
   3 # 만약 Windows를 사용중인데 한글이 깨지면 파일의 한글 인코딩이 utf-8 일 가능성이 크다.
   4 df <- read.csv('데이타.csv', fileEncoding = 'utf-8')

plot()에서 한글이 깨져 보일 때

한글을 출력할 폰트가 지정이 안 되어 생기는 문제

   1 par(family = "AppleGothic")
   2 plot(y ~ x, data=df)

주의: RStudio.cloud 서버에는 한글 폰트가 아예 없음. 한글 폰트 지정이 불가능함


Class/Statistics/RKorean (2022-02-26 15:11:07에 gehoon가(이) 마지막으로 수정)