[Programming]/R(Big Data)

R에서 많은 데이터 관리하기.

JJ* 2014. 11. 28. 14:44

 

5. 많은 데이터 관리하기.

 

1) 벡터로 데이터 관리

* R에서 벡터란?

 : 여러 개의 동일한 형태의 데이터를 모아서 함께 저장되는 세트 (집합이라고도 한다.) ->  c()함수를 사용한다.

 - 모두 동일한 데이터형이 저장되어야 하며, 만일 다른 유형이 있을 경우 강제 형 변환이 일어나거나 에러가 발생한다.

 

 (1) 특정 위치 값 제어하기.

 

* append 함수 : 벡터에 새로운 요소를 추가 (위에 방법 사용시에는 데이터가 replace 되지만, append는 그위치 다음에 추가가 된다.)

 

 

(2) 벡터로 연산하기

 

* union : 두 집합의 합집합

* setdiff(var1,var2) : 두 집합의 차집합 (var1에 있는데, var2에는 없는 요소)

* intersect : 두 집합의 교집합 (공통적으로 있는 요소)

 

 

(3) 벡터의 각 칼럼에 이름 지정 ★ :names()

 - names(벡터명) <- '지정할 칼럼명'

 

* 벡터에 연속적인 데이터 할당 - seq(), rep()

 

(4) 벡터의 길이 찾기 : length() ★

- nrow() 함수 : 행렬의 경우 몇 행인지 구해주는 함수.

  NROW()함수 : 배열의 건 수 출력하는 함수.

 

(5) 벡터에 특정 문자의 포함 여부 찾기★ : 찾을문자 %in% 벡터명

 - 긴 벡터에서 특정 데이터의 존재 유무를 검증하는 방법으로 많이 사용된다.

 

 

 

2) 행렬로 데이터 관리하기- Matrix()함수 사용

 

 (1) 기본문법

 

 

- c()함수를 이용한 배열은 한 행밖에 사용할 수 없다.

- Matrix는 벡터와 달리 여러 행과 컬럼을 가질 수 있지만 모든 칼럼의 행은 데이터형이 동일해야 한다.

  (단 리스트를 사용해서 생성한 행렬은 다른 데이터 타입을 가질 수는 있지만 권장사항은 아니다.)

 

* 가로로 입력 : byrow=T

  몇 행 만들지 : nrow 

 

 

 

 (2) Matrix의 데이터 조회하기 : matrix[행값, 열값]

 

 (3) 새로운 행과 열 추가하기 : rbind(), cbind() 사용

 * rbind() : 행(row)을 추가

 * cbind() : 열(column)을 추가

 

 * 칼럼이름 지정 : colnmaes()

 

 

3) list로 데이터 관리하기

: matrix(행렬)은 여러 건의 데이터가 모두 같은 형태여야 한다. 그러나 list는 다른 유형의 데이터를 저장할 수 있다.

: list는 (키, 값) 형태로 데이터를 저장하는 일종의 배열이다. 

: list는 데이터가 한 건 밖에 안들어 간다.

 (1) List 생성하고 조회.

 

* 특정 key만 조회 : 변수명$key

 (2) List에 새로운 요소 추가/삭제하기

- list에 새로운 요소 추가 : 변수명$새로운key <- '값'

 

- 하나의 key에 두 개 이상의 값을 추가 : 변수명$key <- c('값1','값2')

- 특정 요소 삭제 : 변수명$key <- NULL

 

 

4) 데이터 프레임을 사용하여 데이터 관리하기

: DBMS에서의 칼럼이 R에서는 라벨이라고 부른다.

: 표라고 생각하면 쉽다.

 (1) 벡터로부터 데이터 프레임 생성하기.

 : 각 라벨별로 먼저 생성한 후, data.frame이라는 명령으로 모든 라벨을 합쳐서 데이터 프레임을 생성한다.

 

 (2) 행렬로부터 데이터 프레임 생성하기.

 : 행렬로부터 데이터프레임을 생성하면 다른데이터형이 있을 경우, 전부 같은 데이터형으로 변환이되므로, 같은데이터형일때만 행렬로 데이터프레임을 생성하는 것이 좋다.

- 데이터프레임을 생성한 후 라벨명 지정 : names(데이터프레임명) <- c('라벨1','라벨2',...)

 

 

 (3) 데이터프레임에서 원하는 데이터만 조회하기 : 변수$라벨명

 

* 특정 행과 열을 출력 : c()함수 사용

 

* 특정 조건에 맞는 데이터만 골라 보고 싶은 경우 : subset()함수

 

 

 (4) 데이터 프레임의 내용 확인 및 출력 순서 지정하기.

 

함 수 

기 능 

ncol(dataframe) 

data frame의 열의 개수 

nrow(dataframe) 

data frame의 행의 개수 

names(dataframe) 

colnames(dataframe)

col.names(dataframe) 

data frame의 이름 출력 

rownames(dataframe)

row.names(dataframe) 

data frame의 이름 출력 

dataframe[c(1,2,3,4,5),] 

12,3,4,5 행의 순서대로 출력 

dataframe[c(1,2,3,4,5)] 

dataframe[,c(1,2,3,4,5)]

1,2,3,4,5 열의 순서대로 출력