데이터 다루기를 위한 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의 yrk 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