데이터 다루기를 위한 R 기본함수
head
데이터가 크다 보면 화면에 데이터프레임을 출력할 때 메모리 문제가 생기기 때문에 head
를 이용해 처음의 5개의 데이터만 출력해 확인한다.
head
를 이용해 처음부터 6번째 원소까지 출력한다.
head(1:50)
[1] 1 2 3 4 5 6
1:50
으로 1에서 50까지 연속적인 수를 변수 x
에 넣는다.
x = 1:50
5개만 슬라이싱해 확인한다.
x[1:6]
[1] 1 2 3 4 5 6
10 by 2 데이터 프레임을 만들어 변수 xy
에 넣는다.
xy = data.frame(x = 1:10, y = 10:1)
head
를 이용해 xy
의 데이터를 확인한다.
head(xy)
x y 1 1 10 2 2 9 3 3 8 4 4 7 5 5 6 6 6 5
dim
dim의 차원을 뜻해 데이터프레임의 행과 열을 출력한다.
dim(xy)
[1] 10 2
nrow
데이터프레임의 행을 출력한다.
nrow(xy)
[1] 10
ncol
데이터프레임의 열을 출력한다.
ncol(xy)
[1] 2
table
만약 x = c('a', 'b', 'c', 'c', 'a')
가 있다면 table
은 원소의 개수를 세어 테이블을 만들어준다.
벡터 c('A', 'B', 'C', 'C', 'A')
를 만들어 x에 저장한다.
x = c('A', 'B', 'C', 'C', 'A')
table
을 만들어 출력한다.
table(x)
x A B C 2 1 2
nchar
nchar
의 n은 개수를 나타내고 char는 캐릭터를 나타낸다.
nchar
의 ()
안의 갯수를 세어준다.
nchar('a')
결과 1
이 출력된다.
nchar('a')
[1] 1
nchar('ab')
결과 2
이 출력된다.
nchar('ab')
[1] 2
nchar('20140101')
결과 8
이 출력된다.
nchar('20140101')
[1] 8
substr
substr
의 sub은 빼다, str은 string을 뜻한다. Substr('20140101', 1, 2)
에서 1은 시작점이고 2는 끝나는 지점이다.
substr('20140101', 1,4)
결과 2014
가 출력된다.
substr('20140101', 1,4)
[1] "2014"
substr('20140101', 1,6)
결과 201401
가 출력된다.
substr('20140101', 1,6)
[1] "201401"
substr('20140101', 5,6)
결과 01
가 출력된다.
substr('20140101', 5,6)
[1] "01"
substr('20140101', 7,8)
결과 01
가 출력된다.
substr('20140101', 7,8)
[1] "01"
결측치
r에서는 NA
는 결측치를 뜻한다. 측정을 못했거나 전산상의 오류로 모르는 비어있는 값이다.
간단한 벡터를 만든다.
x = c(1,2,3,NA)
결측치 처리
is.na
is.na
로 NA
가 있는 곳만 보여준다.
!
!
를 사용해 결측치가 없는 데이터를 뽑는다. !
는 not이라는 뜻이다.
is.na(x)
의 결과가 TURE/FALSE
로 반환된다. NA
에 해당하는 데이터에 TRUE
가 출력된다.
is.na(x)
[1] FALSE FALSE FALSE TRUE
is.na(x)
의 결과가 TURE
인 x
의 데이터가 출력된다.
x[is.na(x)]
[1] NA
!is.na(x)
의 결과가 TURE/FALSE
로 반환된다. NA
에 해당하는 데이터에 FALSE
가 출력된다.
!is.na(x)
[1] TRUE TRUE TRUE FALSE
!is.na(x)
의 결과가 TURE
인 x
의 데이터가 출력된다.
x[!is.na(x)]
[1] 1 2 3
매트릭스 상태일 때
xy
의 2행2열 데이터값을 NA
로 바꾼다.
xy[2,2] <- NA
데이터 프레임은 매트릭스 형식이기 때문에 xy[!is.na(xy$y), ]
로 하면, 행에 대한 조건은 xy
의 y
rk NA
가 없는 행으로, 열은 모든 열을 출력한다.
xy[!is.na(xy$y), ]
x y 1 1 10 3 3 8 4 4 7 5 5 6 6 6 5 7 7 4 8 8 3 9 9 2 10 10 1