간단 지식/R

02. 데이터 타입과 변수

납작한돌맹이 2021. 5. 11. 23:21
반응형
> var1 = 1  	
> var2 = "안녕" 
> var3 = as.Date("2021-05-11")
> var4 = "hello world"	
> var5 = "2021-05-11"
> var6 = TRUE

R은 변수를 저장할 때 = 외에도 <- 연산자를 사용할 수 있다. 아직은 =이 익숙한 관계로 굳이 변경해야 할 필요가 없다면 계속해서 =을 사용할 예정이다. 

 

R의 데이터 타입에는 숫자(numeric), 문자(character), 논리(logical), 펙터(factor) 타입 등이 있다.

class()는 인자의 값이 어떤 성질의 데이터인지 알려주는 함수이다. 따라서 아래와 같이 문자열은 character, 날짜 데이터는 Date라고 구분해서 알려준다. 변수에 들어간 값이 무엇인지 궁금하면 그저 변수명만 입력해보면 된다.

> class(var1)
[1] "numeric"
> class(var3)
[1] "Date"
> class(var5)
[1] "character"
> class(var6)
[1] "logical

> var4
[1] "hello world"

 

 다른 언어와는 달리 팩터 타입이 생소하다. factor 타입이란, 범주형 데이터를 저장하기 위한 데이터 타입이다. 범주형 데이터는 명목형 데이터와 순서형 데이터가 있는데, 명목형은 크고 작음을 비교할 수 없는 데이터, 순서형은 크고 작음을 비교할 수 있는 데이터를 말한다. 예를 들어 서울, 대전, 부산 같은 지역명은 명목형 데이터고, 옷 사이즈처럼 s, m, l은 순서형 데이터다.

> sido <- factor("서울", c("서울","부산","제주"))

> sido
[1]서울
Levels: 서울 부산 제주

> class(sido)
[1] "factor"

> levels(sido) 			#전체 범주 확인
[1] "서울" "부산" "제주"

 

 

R에서 변수명은 한글, 영어, 숫자 모두 되지만, 첫 시작 문자는 숫자일 수 없다. ex)1var (x), var1(o)


 

숫자형 데이터의 연산자로는 + - * / %% 가 있다.

> 1+2
[1] 3
> 1.5+2.5
[1] 4
> 4.32 - 2.15
[1] 2.17
> 3*3
[1] 9
> 4/2
[1] 2
> 10%%3
[1] 1

R에서는 큰 숫자를 E로 표현한다. 즉 10의 +- 4제곱까지는 값을 보여주지만 그 이상은 E를 활용한다.

> 50000
[1] 50000
> 500000
[1] 5e+05
> 5e2
[1] 500
> 5e5
[1] 5e+05
> 0.0001
[1] 1e-04
> 0.001
[1] 0.001
> 5e-1
[1] 0.5
> 5e-2
[1] 0.05

 

연산은 항상 같은 타입의 데이터끼리만 가능하고 그렇게 하지 않은 경우에는 아래와 같은 에러 메시지를 만난다.

> var1 = 1
> var2 = 2
> var3 = '3'

> var1+var2
[1] 3
> var1+var3
Error in var1 + var3 : 이항연산자에 수치가 아닌 인수

R에는 NA와 NULL 값이 있다. NA는 값을 알지 못한다는 의미이고 NULL은 값이 없다는 의미이다. 따라서 NA에 대한 모든 연산 결과는 NA이다. 

> no1 = 3
> no2 = NA

> no1+no2
[1] NA
> no1>no2
[1] NA

> sum(1,2,NA)
[1] NA
> sum(1,2,NULL)
[1] 3

 

만일 연산 데이터 중 어떤 변수의 값이 NA이고, 그 값만은 제외하고 연산하고 싶다면 아래와 같이 NA값을 -으로 치환하거나, NA값을 제거하면 된다.

> x = NA

> sum(1,2,x, na.rm=TRUE)
[1] 3

> x[is.na(x)] = 0
> x
[1] 0
> sum(1,2,x)
[1] 3

 

 

 

(이 글이 도움이 됐다면 광고 한번씩만 클릭 해주시면 감사드립니다, 더 좋은 정보글 작성하도록 노력하겠습니다 :) )

반응형