본문 바로가기

study/빅데이터 분석

[R프로그래밍] #4. 자료형-2 (list, matrix), 데이터프레임

리스트(List)

- 숫자형,문자형 데이터를 섞어서 저장이 가능

- 벡터와 같이 인덱스 번호로 내부 데이터 접근이 가능

- 리스트 안에 벡터형 데이터도 추가 가능

list(키1=값1, 키2=값2, ...) #해당 키에 값을 할당
#키 없이 값만 넣어도 가능

변수명$추가할key<-값  #리스트 항목 추가

 

 

행렬(Matrix)

- 2차원 벡터를 표현하기 위한 방법

- 같은 자료형끼리만 저장 가능

- 데이터는 열을 기준으로 세로로 먼저 들어간다. --> 행중심으로 기록하기를 원한다면 byrow=TRUE 추가

- 행렬의 이름 추가 --> dimnames(행렬)<-값

- 행렬에 새로운 행/열 추가

   1. 행 추가 --> rbind(행렬, 행에 추가할 원소)

   2. 열 추가 --> cbind(행렬, 열에 추가할 원소)

matrix(행렬의 구성 원소, nrow=행의 개수, ncol=열의 개수, dimnames=행렬의 이름)
#열중심(column-major order)
#행중심으로 원소를 기록하고 싶을 때 --> matrix(행렬의 구성 원소, nrow=행의 개수, ncol=열의 개수, byrow=TRUE)

 

데이터프레임(data frame)

- 데이터베이스 테이블에 컬럼을 만들고 값을 저장하는 형태와 비슷한 성격으로 R 에서 가장 많이 쓰이는 객체

- 행렬과 동일하지만 데이터 타입이 상관없다는 차이점이 있다.

read.table() #외부 텍스트 파일을 불러들임
data.frame() #여러 종류의 자료객체들을 결합시키는 방법
df<-as.data.frame() #데이터프레임으로 변환하여 df에 할당

행렬-->데이터프레임 변환
read.table()

 

- 데이터프레임 합치기

1. 열(옆)방향으로 합치기 - cbind()

2. 행(아래)방향으로 합치기 - rbind()

3. 데이터프레임에서 중복된 열이 있을 경우 merge() 함수 이용하여 병합

 

- subset 함수 --> 특정 컬럼만으로 이루어진 프레임 생성

data1<-subset(pinfo, select=-거주지역) #거주지역 빼고 전부다
data2<-subset(pinfo, select=c(이름, 나이)) #이름, 나이 행만

- 데이터프레임 특정 행/열 삭제

data2[-3:] #3행 삭제
data2[:-5] #5열 삭제

- 행 크기 --> nrow(데이터프레임)

- 열 크기 --> ncol(데이터프레임)

- 데이터프레임 header 이름 --> colnames(데이터프레임) / names(데이터프레임)