R에서 특정 문자, 문자열 제거하기
/*
* http://sosal.kr/
* made by so_Sal
*/
find0 라는 파일에 integer pair가 저장되어 있는데
끝에 " 라는 문자때문에 프로그래밍 안에서 바로 연산을 할 수 없는 상황이었습니다.
[sosal@sosalr tmp]$ head ./find0
8 1540"
8 3436"
8 3454"
8 6484"
8 6760"
8 7291"
8 7921"
8 7984"
8 10331"
8 10993"
pair <- read.table("find0", sep="", header=FALSE, stringsAsFactors=FALSE)
이렇게 읽게 되면 V1, V2 column이 다른 형태의 변수로 읽어지게 됩니다.
> head(pair)
V1 V2
1 8 1540"
2 8 3436"
3 8 3454"
4 8 6484"
5 8 6760"
6 8 7291"
> typeof(pair[1,1])
[1] "integer"
> typeof(pair[1,2])
[1] "character"
>
integer로 읽혀야 할 것이, character로 읽혀저 버립니다.
- 해결책
pair[,2] <- as.integer(gsub("\"", "", pair[,2]))
gsub을 이용하여 " 라는 문자열을 모두 공백문자로 바꿔주고, interger 형태로 형변환을 해주면 완료됩니다.
> head(pair)
V1 V2
1 8 1540
2 8 3436
3 8 3454
4 8 6484
5 8 6760
6 8 7291
> typeof(pair[1,1])
[1] "integer"
> typeof(pair[1,2])
[1] "integer"
>