본문 바로가기

study/빅데이터 분석

[R프로그래밍] #3. 산술연산자, 변수, 자료형-1

R의 산술연산자

- +(더하기), -(빼기), *(곱하기), /(나누기 - 실수, 정수)

- %/% : 정수 나눗셈을 할 때 몫만 출력

- %%(나머지) : 나머지 값 계산

- ^ 또는 ** : 제곱

 

 

 

R의 변수

- 값을 저장하기 위한 메모리 공간을 확보하여 변수명(식별자)을 붙인 것

- 형식 : 변수명<-값

- 변수명의 첫 글자는 반드시 문자로 시작

- 변수명으로 예약어 사용 불가, 대소문자 구분

- C언어처럼 문자열과 문자를 구분하지 않는다.

- 동일한 데이터 형식을 하나의 변수에 묶어둔다. --> 벡터 , c함수 사용

변수끼리 연산

 

in 사용
연속적인 숫자 할당 위해 :(콜론) 사용

R의 자료형(data type)

<스칼라 타입>

정수 : 1, 2, 3, 4, ...

실수 : 5.8, 7.7777, 123.45, ...

문자열 : "안녕", "반가워", ...

진릿값 : TRUE, FALSE

날짜/시간 : "2020-02-22", ...

 

 

 

Sys.Date() : 시스템 날짜를 표시하기 위한 함수

as.Date(변수명) : 문자열 데이터 값을 날짜형으로 변환해준다.

 

 

<NA 데이터 타입>

: Not Available --> 결측값(데이터 값이 없음)

- is.na() 함수 : 변수의 NA 값이 있는지 확인

- NA값이 들어있으면 sum()함수 계산 불가능

 

 

 

<NULL 데이터 타입>

: 데이터 값이 정해지지 않은 상태(undefined)

- is.null(변수명) : 현재 변수가 null인지 확인

 

 

 

 

 

 

<Factor 타입>

- 범주형 데이터(categroy)

 1. 명목형 데이터(순서X) : 종교(천주교, 기독교, 불교), 의결(찬성, 반대) ...

 2. 순서형 데이터(순서O) : 크기(대, 중, 소) ...

- vector형식의 한 형태

- 중복되는 값들이 존재할 때 중복되는 값들 중 1개씩만 모아서 목록을 만들어준다.

- factor의 ordered의 기본값 : FALSE(명목형 데이터)

 factor(x, levels, ordered)
 #x : factor로 표현하고자 하는 값
 #levels : factor 레벨의 목록을 보여줌
 #ordered : TRUE(순서형 데이터), FALSE(명목형 데이터)
 
table(x) #level에 따라 몇개의 값이 존재하는지 count값 출력
unclass(x) #목록의 단순 상수값만을 출력하고 해당 상수가 의미하는 데이터 값 표시

factor 사용예시

 

<Vector 타입>

: 여러 변수들을 하나의 이름으로 묶은 집합

- 같은 유형의 데이터를 여러 개 변수로 보관해야 할 경우 벡터를 사용

- 벡터의 항목 변경 가능

- 인덱스는 C언어와 달리 1부터 시작한다.

- 벡터의 각 항목에 이름을 부여하여 이름으로도 접근이 가능

- c() 함수를 이용해서 벡터 생성

coffee<-c(3000, 4500, 4500, 5500)
x<-1:5 #c() 함수 사용 안하고 :로 연속되는 숫자를 담는 vector 만들기

- 벡터 항목의 요소들은 한가지 데이터 타입이어야 하고 그렇지 않다면 강제 형변환을 일으킨다.

  (ex. 정수형과 실수형이 같이 들어가게 되면 실수형으로 강제 형변환

        문자와 숫자가 같이 들어가게 되면 문자로 강제 형변환)

 

vector 사용 예시

- 벡터 항목에 이름 설정하기

names() 함수를 이용하여 이름 설정

names() 반환값은 지정한 이름값을 문자열 벡터에 할당

names(coffee)<-c("아메리카노", 에스프레소", "카라멜마끼아또", "콜드브루")

- 벡터 접근

vector[n] #n번째 항목에 접근
vector["이름"] #이름에 해당하는 항목 접근
vector[s:e] #s번째 항목부터 e번째 항목에 접근
vector[-n] #n번째 항목만 제외하고 나머지 항목 접근

- 벡터 연산

coffee["에스프레소"]+500 # 벡터의 특정 항목에 접근하여 계산
#위의 코드를 입력하면 계산값이 출력되고 vector의 결과값이 바뀌는 것은 아님
coffee+1000 #벡터 전체에 대한 연산작업을 일괄적으로 실행

 

- 벡터 집합연산

벡터를 하나의 집합으로 간주하고 집합 간의 교집합, 합집합, 일치 여부 등을 연산

identical(x,y) # 두 집합의 항목이 일치하면 TRUE, 일치하지 않으면 FALSE
union(x,y) # 두 집합의 항목을 합집합 계산
intersect(x,y) # 두 집합의 항목을 교집합 계산
setdiff(x,y) # x의 차집합 계산
setequal(x,y) # 두 집합의 구성값이 동일하면 TRUE, 동일하지 않으면 FALSE

vector 집합연산 사용 예시

 

- 벡터에 연속적 데이터 할당

seq(시작값, 끝값,증가값) #연속적 데이터를 할당
rep(반복할 벡터항목, times(또는 each)) #반복적 항목으로 이루어진 벡터생성
#times – 반복할 벡터항목 전체를 몇번 반복할 것인지 횟수를 기술
#each – 반복할 벡터항목 각각을 몇번 반복할 것인지 횟수를 기술

vector 연속적 데이터 할당 예시

- 벡터 길이 구하기

length(벡터) #해당 벡터 길이 계산
NROW(벡터) #벡터, 행렬의 행, 데이터프레임의 행 수를 계산하여 보여줌

 

- 비어있는 벡터 만들기

a<-vector(mode="numeric", length=10)
#실행 결과 0 0 0 0 0 0 0 0 0 0