R에서 '유효하지 않은 멀티바이트 문자열' 에러 발생 시
- Stackoverflow/R
- 2020. 5. 19.
> Bio <- read.table("E:/study/R/data/Bio.csv", sep=",", head=TRUE)
Error in make.names(col.names, unique = TRUE) :
'<eb><82><98>?<b4>'에서 유효하지 않은 멀티바이트 문자열이 있습니다
R에서 read.csv 혹은 read.table로 파일을 읽어올 때 위와 같은 에러가 발생하였다. 원본에 한글이 있어서 생기는 인코딩 문제로 보이며 원본 데이터는 UTF-8 타입으로 다음과 같았다
우선 이것을 해결하는 매우 간단한 방법은 원본 파일의 인코딩을 바꾸는 것이다.
이와같이 ANSI로 변경하고 다시 실행해보았다.
> Bio <- read.table("E:/study/R/data/Bio.csv", sep=",", head=TRUE)
> Bio
번호 나이 키 체중 BMP FEV RV FRC TLC Pemax
1 1 7 109 13.1 68 32 258 183 137 95
2 2 7 112 12.9 65 19 449 245 134 85
3 3 8 124 14.1 64 22 441 268 147 100
4 4 8 125 16.2 67 41 234 146 124 85
5 5 8 127 21.5 93 52 202 131 104 95
6 6 9 130 17.5 68 44 308 155 118 80
이와같이 정상적으로 출력되는 것을 볼 수 있다.
BUT, 당연히 이건 내가 원하는게 아니다. R 단계에서 처리가 되길 원하는데...
> Bio <- read.table("E:/study/R/data/Bio.csv", sep=",", head=TRUE, encoding="UTF-8")
> Bio
번호 나이 키 체중 BMP FEV RV FRC TLC Pemax
1 1 7 109 13.1 68 32 258 183 137 95
2 2 7 112 12.9 65 19 449 245 134 85
3 3 8 124 14.1 64 22 441 268 147 100
4 4 8 125 16.2 67 41 234 146 124 85
5 5 8 127 21.5 93 52 202 131 104 95
6 6 9 130 17.5 68 44 308 155 118 80
7 7 11 139 30.7 89 28 305 179 119 65
8 8 12 150 28.4 69 18 369 198 103 110
9 9 12 146 25.1 67 24 312 194 128 70
10 10 13 155 31.5 68 23 413 225 136 95
이와같이 encoding="UTF-8" 인자값을 추가로 넣어주면, 인코딩 처리하여 읽어온다.
> Bio <- read.csv("E:/study/R/data/Bio.csv", head=TRUE, encoding="UTF-8")
> Bio
번호 나이 키 체중 BMP FEV RV FRC TLC Pemax
1 1 7 109 13.1 68 32 258 183 137 95
2 2 7 112 12.9 65 19 449 245 134 85
3 3 8 124 14.1 64 22 441 268 147 100
4 4 8 125 16.2 67 41 234 146 124 85
5 5 8 127 21.5 93 52 202 131 104 95
6 6 9 130 17.5 68 44 308 155 118 80
7 7 11 139 30.7 89 28 305 179 119 65
read.table, read.csv 둘다 마찬가지로 encoding="UTF-8"을 사용하면 된다.
반응형
'Stackoverflow > R' 카테고리의 다른 글
package or namespace load failed for ‘Hmisc’: (0) | 2020.05.21 |
---|