티스토리 뷰
R에서 나는 에러들(invalid multibyte character, Error in Select, 한글깨짐)
KyeongRok Kim 2020. 8. 12. 18:35R자주쓰는 기능
invalid multibyte character in parser at line 날때
r을 쓰다보면 한글이 깨지는 문제가 있습니다.
윈도우 같은 경우는
Sys.getlocale()
을 해보면
[1] "LC_COLLATE=Korean_Korea.949;LC_CTYPE=Korean_Korea.949;LC_MONETARY=Korean_Korea.949;LC_NUMERIC=C;LC_TIME=Korean_Korea.949"
로 나옵니다.
한글이 포함되어 있는 파일을 불러오면
Error in (function (file = "", n = NULL, text = NULL, prompt = "?", : invalid multibyte character in parser at line 12
이런 파싱 에러가 날 때가 있습니다.
그럴때 아래 코드를 콘솔에 입력 해줍니다.
Sys.setlocale("LC_CTYPE", ".1251")
LC_CTYPE을 .1251로 바꿔주는 명령어 입니다.
Sys.getlocale()
[1] "LC_COLLATE=Korean_Korea.949;LC_CTYPE=Korean_Korea.1251;LC_MONETARY=Korean_Korea.949;LC_NUMERIC=C;LC_TIME=Korean_Korea.949"
위와 같이 getlocale()을 하면 LC_CTYPE이 1251로 바뀝니다.
이렇게 바꾸고 돌리면 코드는 돌아갑니다. 그런데 콘솔에서 한글이 깨져서 보입니다.
쨌든 돌아간다는것.
초기 설정으로 돌아가기
Sys.setlocale("LC_ALL")
하다보면 초기 설정으로 돌아가고 싶을때가 있습니다. 그러면 위 명령어를 써주면 됩니다.
출력문제 해결하기
Sys.setlocale("LC_ALL", "korean")
로직을 짜서 데이터를 다 돌렸는데 Sys.setlocale("LC_CTYPE", ".1251") 이걸로 놓으면 한글이 콘솔에서 계속 깨져 보입니다. 그래서 다시 한글을 보고싶을 때는 위 명령어를 쓰고 돌립니다. 그런데 위에서 돌아가던게 이렇게 바꾸면 안돌아가니까 다 돌리고 나서 해야 합니다.
Error in select 에러 날 때
나는 이유는 다른 패키지에 있는 select()와 충돌할 때 납니다.
dplyr::select()를 해주면 됩니다.
한글 있는 파일 안불러와지거나 깨질 때
유효하지 않은 입력을 찾았습니다 나올 때 sublime text로 불러와서 Save with Encoding을 utf-8로 해주고
꼭 Save As로 다른 이름으로 새로 저장 해주어야 합니다. 안그러면 안될때가 많습니다.
그리고 R에서는 read.csv(fileEncoding = 'utf-8') fileEncoding을 utf8로 했음
- Total
- Today
- Yesterday
- 도커컨테이너
- 도커각티슈박스
- vim
- docker container case
- docker container whale
- 도커티슈케이스
- 2017 티스토리 결산
- 싱가폴
- docker container tissue
- 도커티슈박스
- shellscript
- 개발자
- Sh
- 이직
- docker container
- 도커각티슈케이스
- docker container tissue box
- Linux
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |