/*

 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"
>

저작자 표시 비영리 변경 금지
신고
Posted by sosal sosal

댓글을 달아 주세요