|
크기: 3401
설명:
|
크기: 4404
설명:
|
| 지워진 줄은 이렇게 표시됩니다. | 추가된 줄은 이렇게 표시됩니다. |
| 줄 1: | 줄 1: |
| ##acl +All:read | #acl +All:read |
| 줄 5: | 줄 5: |
| = R에서 한글이 깨질 때 = == 인코딩문제? == 컴퓨터에서 문자는 (그리고 모든 것은) 2진수로 저장된다. 1. 컴퓨터가 처음 개발될 때 알파벳과 특수 문자를 포함하는 2^8^ = 256개의 문자를 모아 8자리 이진수로 표현했고, 1. 이를 [[WikiPedia:ASCII]] (American Standard Code for Information Interchange) 코드라고 한다. 1. 컴퓨터를 영어 문화권에서만 사용하면 ASCII 코드로 충분하고 아무 문제가 없다. |
= R에서 한글 사용시 고려해야할 것들 = |
| 줄 12: | 줄 7: |
| 알파벳이 아닌 문자 (한/중/일/등등등)는 각자 나라에서 정해진 방식으로 문자를 저장했다. * 게다가 시대마다 인코딩이 조금씩 달라져 참 거시기하다. * 한글의 예를 들면 춘추전국시대를 지나 euc-kr 이라는 방식이 정부 표준으로 자리잡았으나, * Microsoft는 이를 개량한 cp949 라는 방식으로 Windows 95에 탑재하여 이후 cp949가 공인 표준보다 더 표준처럼 쓰이게 됨. |
== 한글 Windows에서 R 사용시 주의할 것들 == |
| 줄 17: | 줄 9: |
| 글로벌시대에 영어/한/중/일/태국/사우디/등등 여러 언어를 한 문서에 써야 할 경우가 종종 발생한다. * 기존의 나라별 문자 인코딩 방식은 이게 참 어렵다. * 지구상 모든 문자를 다 아우르는 universal code, 이름하야 unicode가 탄생한다. * 1991년 Launching 이후 더 많은 언어를 포함하며 꾸준히 업데이트 되는 unicode를, 그러나 Microsoft는 꾸준히 외면하다 Windows 10에서야 적용한다. |
=== install.packages()의 오류 === install.packages()를 call하면 R은 해당 package를 다운로드 받아 library에 저장한다. 1. R은 첫번째로 C:/Program Files/R/R-x.x.x/library 에 저장을 시도한다. * 그런데 Windows에서 C:/Program Files는 보안을 이유로 접근을 제한한 위치이다. {{attachment:RLibraryError1.png}} 1. 그래서 R은 사용자에게 묻는다. Would you like to create a personal library at C:/Users/계정이름/Documents/R/win-library/x.x? {{attachment:RLibraryError2.png}} * 그런데 저 계정이름이 한글인 경우 R은 인식을 못 한다. 한글을 ??? 로 인식하고 그 폴더를 찾지만 그런 폴더가 있을리가 없지. {{attachment:RLibraryError3.png}} * '''계정 이름이 영문'''으로 된 경우는 당연히 '''아무 문제'''가 '''없다'''. |
| 줄 22: | 줄 20: |
| R에서 한글이 깨지는 원인: * cp949로 저장한 한글을 unicode 방식으로 읽으려 하거나, (Windows 8이나 그 이전 Windows를 이용해서 자료를 저장했다.) * unicode 방식으로 저장한 한글을 cp949 방식으로 읽으려 하는 경우 (내 컴퓨터가 Windows 8이나 그 이전 Windows인데 자료는 Windows 10이나 macOS, Linux, Unix등에서 저장했다.) |
==== 해결책 ==== 1. R Library로 쓸 빈 폴더를 하나 만든다. (예: C:/rProject/Library) * 폴더를 만들고자 하는 위치에서 우클릭 -> 새로 만들기 -> 폴더 선택 * 폴더 이름은 자유롭게 정하면 된다. 다만 한글을 포함하지 않도록 하는 것이 중요하다. * C:/기의통/RLibrary -> 역시 곤란하다. '기의통' 부분을 ??? 로 인식하고 찾아다닐 것이다. * D:/Rproj/Lib -> 가능함. 한글만 없으면 된다. 1. 이 파일을 찾아서 메모장으로 연다. C:/Program Files/R/R-x.x.x/etc/Rprofile.site (x.x.x는 현재 사용중인 R 버전이다.) * 파일을 찾아서 우 클릭 후 [편집]을 선택한다. * 만약 [편집]이 리스트에 없다면, [연결 프로그램]을 선택하고, [추가앱]에서 [메모장]을 선택한 후, * [학상 이 앱을 사용하여 .site 파일 열기]를 체크 해제하고, [확인]을 누른다. 1. Rprofile.site 파일 가장 아래에 다음을 추가한다. {{{ .libPaths("C:/rProject/Library") }}} * libPaths 앞 마침표 . 하나 꼭 필요하다. * 대소문자에 유의한다. * ```C:/rProject/Library``` 대신 위에서 실제로 만든 폴더 위치를 입력한다. 1. 파일을 저장한다. (Windows 관리자 권한이 필요하다) 1. R을 재시작하면 앞으로 package는 ```C:/Rproject/Library``` 혹은 지정된 폴더로 다운로드 된다. * Console에서 ```.libPaths()```를 입력하면 설정이 바뀌었는지 확인 가능하다. |
| 줄 26: | 줄 41: |
| 해결방법 (다음 셋 중 하나를 한다): * 파일을 읽을 때 인코딩을 지정해준다. * read.spss() function을 부를 때 reencode=TRUE 옵션을 준다: read.spss("filename", reencode=TRUE) * read.csv() function은 이렇게 쓴다: read.csv("filename.csv", fileEncoding = "euc-kr") * [[http://rfriend.tistory.com/10|이 블로그]]를 참고하여 R의 인코딩 방법을 수정한다. * 한글을 쓰지 않는다. |
== macOS나 Linux에서 고려할 사항 == === 다운로드 받은 한글 데이타가 깨져서 로딩 될 때 === 한글 encoding 문제임. * 한글은 내부적으로 2진수로 변환하여 저장/처리되는데, 그 2진수화 과정을 encoding 이라고 부름. * MS-Windows는 [[https://namu.wiki/w/EUC-KR|EUC-KR]]이라는 encoding 방법을 이용하여 한글을 변환함. * macOS나 RStudio.cloud를 포함하는 Unix, Linux 운영체제는 [[https://namu.wiki/w/UTF-8|UTF-8]]이라는 encoding 방법을 이용하여 한글을 변환함. |
| 줄 33: | 줄 48: |
| == Windows의 계정 이름이 한글인 경우? == 몇몇 영어권 windows software(예: RStudio)는 한글으로 된 파일 이름을 못 찾는다. * 파일 이름은 영어여도, 계정 이름이 한글이면 파일 경로상 한글이 존재하게 되고, 파일을 못 찾는다. |
문제는 Windows system에서 작성된 한글 text 파일을 Unix(macOS 포함)나 Linux(RStudio.cloud 포함)에서 읽을 때 일어남. * 해결방법: read.csv() 함수를 사용할 때 ```fileEncoding = 'euc-kr'``` 옵션을 추가. * 반대로 Unix, Linux에서 작성된 한글 text 파일을 다운받아 Windows 에서 열 때는 ```fileEncoding = 'utf-8'``` 옵션을 추가. * Windows도 궁극적으로는 업계표준인 utf-8으로 통일 될 것이다. |
| 줄 37: | 줄 53: |
| 해결방법 (다음 넷 중 하나를 한다): * [[http://rfriend.tistory.com/306|이 블로그]]를 참고하여 계정 이름을 영어로 변환한다. * 영어로 된 계정 이름을 하나 만들고 거기서만 RStudio를 쓴다. * 데이타를 드라이브 최상위 폴더에 저장한다. (D:\english_folder_name\data_file) * Apple Mac이나 Linux를 사용한다. |
{{{#!highlight r df <- read.csv('데이타.csv', fileEncoding = 'euc-kr') |
| 줄 43: | 줄 56: |
| == macOS 인데도 한글이 깨진다? == * R이 영어폰트를 사용하게 세팅된 경우임. * [[https://blog.naver.com/twilight_teatime/221185918535|이 블로그]]를 참고하여 한글폰트를 사용하게 세팅한다. |
# 만약 Windows를 사용중인데 한글이 깨지면 파일의 한글 인코딩이 utf-8 일 가능성이 크다. df <- read.csv('데이타.csv', fileEncoding = 'utf-8') }}} === plot()에서 한글이 깨져 보일 때 === 한글을 출력할 폰트가 지정이 안 되어 생기는 문제 * 한글 폰트를 지정하여 간단히 해결 {{{#!highlight r par(family = "AppleGothic") plot(y ~ x, data=df) }}} 주의: RStudio.cloud 서버에는 한글 폰트가 아예 없음. 한글 폰트 지정이 불가능함 * 그래프에서 한글을 포기한다. * 한글 내용을 영문으로 출력한다. |
R에서 한글 사용시 고려해야할 것들
한글 Windows에서 R 사용시 주의할 것들
install.packages()의 오류
install.packages()를 call하면 R은 해당 package를 다운로드 받아 library에 저장한다.
- R은 첫번째로 C:/Program Files/R/R-x.x.x/library 에 저장을 시도한다.
- 그런데 Windows에서 C:/Program Files는 보안을 이유로 접근을 제한한 위치이다.
- 그런데 Windows에서 C:/Program Files는 보안을 이유로 접근을 제한한 위치이다.
- 그래서 R은 사용자에게 묻는다. Would you like to create a personal library at C:/Users/계정이름/Documents/R/win-library/x.x?
- 그런데 저 계정이름이 한글인 경우 R은 인식을 못 한다. 한글을 ??? 로 인식하고 그 폴더를 찾지만 그런 폴더가 있을리가 없지.
계정 이름이 영문으로 된 경우는 당연히 아무 문제가 없다.
해결책
- R Library로 쓸 빈 폴더를 하나 만든다. (예: C:/rProject/Library)
폴더를 만들고자 하는 위치에서 우클릭 -> 새로 만들기 -> 폴더 선택
- 폴더 이름은 자유롭게 정하면 된다. 다만 한글을 포함하지 않도록 하는 것이 중요하다.
C:/기의통/RLibrary -> 역시 곤란하다. '기의통' 부분을 ??? 로 인식하고 찾아다닐 것이다.
D:/Rproj/Lib -> 가능함. 한글만 없으면 된다.
- 이 파일을 찾아서 메모장으로 연다. C:/Program Files/R/R-x.x.x/etc/Rprofile.site (x.x.x는 현재 사용중인 R 버전이다.)
- 파일을 찾아서 우 클릭 후 [편집]을 선택한다.
- 만약 [편집]이 리스트에 없다면, [연결 프로그램]을 선택하고, [추가앱]에서 [메모장]을 선택한 후,
- [학상 이 앱을 사용하여 .site 파일 열기]를 체크 해제하고, [확인]을 누른다.
- Rprofile.site 파일 가장 아래에 다음을 추가한다.
.libPaths("C:/rProject/Library")- libPaths 앞 마침표 . 하나 꼭 필요하다.
- 대소문자에 유의한다.
C:/rProject/Library 대신 위에서 실제로 만든 폴더 위치를 입력한다.
- 파일을 저장한다. (Windows 관리자 권한이 필요하다)
R을 재시작하면 앞으로 package는 C:/Rproject/Library 혹은 지정된 폴더로 다운로드 된다.
Console에서 .libPaths()를 입력하면 설정이 바뀌었는지 확인 가능하다.
macOS나 Linux에서 고려할 사항
다운로드 받은 한글 데이타가 깨져서 로딩 될 때
한글 encoding 문제임.
- 한글은 내부적으로 2진수로 변환하여 저장/처리되는데, 그 2진수화 과정을 encoding 이라고 부름.
MS-Windows는 EUC-KR이라는 encoding 방법을 이용하여 한글을 변환함.
macOS나 RStudio.cloud를 포함하는 Unix, Linux 운영체제는 UTF-8이라는 encoding 방법을 이용하여 한글을 변환함.
문제는 Windows system에서 작성된 한글 text 파일을 Unix(macOS 포함)나 Linux(RStudio.cloud 포함)에서 읽을 때 일어남.
해결방법: read.csv() 함수를 사용할 때 fileEncoding = 'euc-kr' 옵션을 추가.
반대로 Unix, Linux에서 작성된 한글 text 파일을 다운받아 Windows 에서 열 때는 fileEncoding = 'utf-8' 옵션을 추가.
- Windows도 궁극적으로는 업계표준인 utf-8으로 통일 될 것이다.
plot()에서 한글이 깨져 보일 때
한글을 출력할 폰트가 지정이 안 되어 생기는 문제
- 한글 폰트를 지정하여 간단히 해결
주의: RStudio.cloud 서버에는 한글 폰트가 아예 없음. 한글 폰트 지정이 불가능함
- 그래프에서 한글을 포기한다.
- 한글 내용을 영문으로 출력한다.
| /CentralLimitTheorem /ChiSquared /Clustering /InstallR /InstallRStudio /Lies /NormalDistribution /RBasic /RBasic1 /RBasic2 /RBasic3 /RCloud /RIntro /RKorean /T-Test |
