본문 바로가기

R programming

[R:02]R에서 사용하는 데이터 타입

01.R에서 사용하는 데이터 타입

 

 자료 형태

구성차원

자료 유형

다른  데이터 공존여부

스칼라(scala)

단일

수치/문자/논리

불가

벡터(vector)

1차원

수치/문자/논리

불가

팩터(factor)

1차원

수치/문자

불가, 범주형 데이터

행렬(matrix)

2차원

수치/문자/논리

불가

데이터 프레임(data frame)

2차원(테이블형)

수치/문자/논리

가능

배열(array)

2차원 이상

수치/문자/논리

불가

리스트(list)

2차원 이상

수치/문자/논리

가능

 

 

*데이터 프레임엑셀과 같이 숫자, 문자  다양한 데이터를 하나의 테이블에 담을  있는 자료구조

 

*벡터(vector)와 팩터(factor)의 차이:  factor는 vector형과 유사하지만 엄연히 다르다. 다름의 기준은 바로 factor는 레벨을 가진다는 것이다. 실제로 사용해보면 벡터와 팩터는 확실히 다름을 알 수 있다. 

fact<-factor(c(0,1,2,3))

str(fact)

print(fact)

 

str: 해당 변수의 상세 설명을 보여주는 함수)

위의 값을 console에 나타내어 보면 

 

레벨이라는 것이 존재하는걸 확인할 수 있다.

레벨은 내가 지정해줄 수도 있지만 지정하지 않는다면 맨처음 초기화될때의 값을 기준으로 레벨을 만든다.

따라서 fact변수의 레벨은 4이며 값으로는 0,1,2,3을 가진다.

이 레벨을 벗어나는 데이터를 넣으려고 하면 거부하며 에러를 내뱉는다.

 

 

fact<-factor(c(0,1,2,3))

fact[5]<-9

을 console에 나타내면 아래와 같이 에러가 난다.

 

이처럼, 팩터는 level이 존재하여 이와 같은 상황에서 에러를 내뿜지만, 벡터(vector)의 경우 에러가 레벨이 없어 에러가 나지 않는다. 다음을 보면서 확인해보자.

 

fact<-c(0,1,2,3)

str(fact)

print(fact)

을 console로 나타내면

 

이와 같고 여기에 추가로

fact[5]<-9

print(fact)

을 넣으면 console에 다음과 같이 에러가 나지 않고 값이 출력됨을 볼 수 있다. 

 

 

02.데이터 종류

 

-범주형 데이터(Categorical Data): 산술연산(불가능x), 특정 유형으로만 분류되는 경우의 데이터

       ①명목형(데이터): 명목적으로 분류한 데이터

                                 ex)남/여, 혈액형(A형, B형, AB형, O형)

       ②순서형(데이터): 값에 순서를 들 수 있는 데이터

                                 ex)1,2,3(1등,2등,3등), 대,중,소

 

-수치형 데이터(Numerical Data): 산술연산(가능o), 숫자로 되어있는 경우의 데이터

       ①이산형(데이터): 이산적인 값을 가지는 데이터

                                 ex)수량, 일주일 간 교통사고 횟수

       ②연속형(데이터): 연속적인 값을 가지는 데이터

                                 ex)키,몸무게,혈압