코딩초보 김씨

[R] 5가지 데이터 유형 본문

R

[R] 5가지 데이터 유형

초보김씨 2021. 6. 17. 17:47

 

R의 데이터 유형 5가지 Vector, List, Factor, Matrix, Dataframe

 


 

[ 1. Vector, List, Factor, Matrix, Dataframe ]

0) Vector란? 1차원 데이터 (몸무게 데이터와 같은 단일 주제의 데이터)

   아래에서 설명할 Matrix(행렬)와 Dataframe은 2차원 데이터

 

1) Vector 만들기

변수명 <- c( )
변수명 <- seq(시작값, 끝값, 간격)
변수명 <- rep(vector, times=반복 횟수) # vector : 1, 1:5, c(1,2,3,4,5) 등 여러 형태로 들어갈 수 있다.

 

2) Vector 원소값 추출

# 벡터 생성
x <- c(1,2,3,4,5)

# 인덱싱
x[1]           # 1
x[c(1,3,5)]    # 1 3 5
x[seq(1,5,2)]  # 1 3 5
x[-2]          # 1 3 4 5

3) Vector 연산 & 논리연산

# 벡터 생성
x1 <- c(1,2,3,4,5)
x2 <- c(6,7,8,9,10)

# 연산
x1 + x2   # 7 9 11 13 15
x1-5      # -4 -3 -2 -1 0
2*x       # 2 4 6 8 10

# 논리연산
x1>=3        # 3 4 5
x[x>3]       # 4 5
sum(x>3)     # 2(3보다 큰 값의 개수)
sum(x[x>3])  # 9(3보다 큰 값의 합계)

 

 


 

[Vector, 2. List, Factor, Matrix, Dataframe ]

 

1) 정의 : 서로 다른 자료형의 값들을 1차원 배열에 저장하고 다룰 수 있도록 하는 수단

2) List 만들기

score <- c(90,80,70,60)
my.info <- list(name='kim', age='2X', status=TRUE, score=score)

my.info        # 저장된 내용 전체 출력
my.info$name   # kim
my.info[4]     # $score [1] 90 80 70 60 (리스트 네번째 ?? 전체 출력)
my.info[[4]]   # 90 80 70 60 (리스트 네번째 값 출력)

 


 

[Vector, List, 3. Factor, Matrix, Dataframe ]

 

1) Factor 만들기 : 변수명 <- factor(vector, lables= , levels= , ordered= )

 - lables : vector의 이름 변경, 지정 가능

 - levels : vector 집단의 순서를 표시

 - ordered(True/False) : 순서형 자료 표시

# 벡터vector 정의
x <- c('A', 'B', 'B', 'O', 'AB', 'A')

# factor 정의
x.factor <- factor(x)

# x 출력--------------------------------------------------------
x                
결과 : "A"  "B"  "B"  "O"  "AB" "A" 

# x.factor 출력-------------------------------------------------
x.factor         
결과 : A  B  B  O  AB A / Levels: A AB B O

# label 지정-----------------------------------------------------
x.factor <- factor(x, labels = c("A형", "AB형", "B형", 'O형'))
결과 : [1] A형  B형  B형  O형  AB형 A형 
       Levels: A형 AB형 B형 O형

 


 

[Vector, List, Factor, 4. Matrix, Dataframe ]

 

0) Matrix란? 2차원 데이터 (몸무게, 키, 나이와 같은 여러 주제의 데이터)

                행렬의 모든 셀에 동일한 자료형의 값이 저장되어야 함

   아래에서 설명할 Dataframe도 2차원 데이터, 다른 자료형 가능

 

1) Matrix만들기

matrix(vector, nrow= , ncol= , byrow=TRUE)
# byrow : TRUE 값을 가로로 채움/FALSE(DEFAULT) 세로로 채움

rbind(vector1, vector2, ...)
# elements 가로로 추가

cbind(vector1, vector2, ...)
# elements 세로로 추가

 

 


 

[Vector, List, Factor, Matrix, 5. Dataframe ]

 

0) Dataframe란? 2차원 데이터 (몸무게, 키, 나이와 같은 여러 주제의 데이터)

                     서로 다른 자료형의 값들이 함께 저장 (단, 하나의 열에는 하나의 데이터 유형만 가짐)

 

 

1) Dataframe 만들기

city <- c("Seoul","Tokyo","Washington")   # 문자로 이루어진 벡터
rank <- c(1,3,2)                          # 숫자로 이루어진 벡터
city.info <- data.frame(city, rank)       # 데이터프레임 생성
city.info

[결과]
city rank
1      Seoul    1
2      Tokyo    3
3 Washington    2

2) 속성 확인

# 행/열 갯수 출력
dim(dataframe)
nrow(dataframe)
ncol(dataframe)

# 열 이름 출력
colnames(dataframe)

# 데이터셋 앞/뒷부분 일부 출력
head(dataframe)
tail(dataframe)

# 데이터셋 요약 정보 확인
str(dataframe)

# 열 값 종류 확인(중복 제거)
unique(dataframe[열])

3) 행렬, 데이터프레임에서 사용하는 함수

# 행/열별 합계/평균
colSums(dataframe[열])
colMeans(dataframe[열])
rowSums(dataframe[열])
colMeans(dataframe[열])

# 행/열 transpose
t(dataframe)

# 행/열 값 추출
객체 <- subset(dataframe, 조건, select=)
# select : select로 지정한 열만 반환 또는 제외하고 반환

4) 자료구조 확인 및 변환

# 자료구조 확인
class(dataframe)

# matrix/dataframe인지 확인
is.matrix(dataframe)
is.data.frame(dataframe)

# 자료구조 변환
matrix_df <- data.frame(matrix)
dataframe_m <- as.matrix(dataframe)

 

 

Comments