본문 바로가기
게임 제작 관련/개발환경(프로그램)

R 시작하기(벡터 만들기, 연산자, 데이터 형태 등)

by 김바보 2022. 9. 27.

좌측 상단 = 메모장 느낌, 코드 작성

좌측 하단(Console) = 코드 실행기, 메모장 쪽에서 Ctrl + Enter 누르면 바로 실행됨 (드래그해서 여러줄 실행 가능)

우측 상단(Environment) = 변수, 테이블 등 저장된 값이 무엇인지 표시됨

우측 하단(Files) = 파일 탐색기 느낌

 

 

* typeof(변수) 형식 확인하는 함수

* 문자형은 ""로 묶기

* TRUE, FALSE 대문자로 or T, F 줄임말도 가능

* 도움말 = ?도움이 필요한 함수  ex) ?seq

 

 

1. 변수(Variables) 만들기

a = 3
a = c(3)
a <- 3

세 개 다 a에 3을 넣는 방법이다.

Variable은 Vector에서 한 개의 원소를 의미한다.

Vector = 한 가지 타입의 데이터가 저장된 것 / 1개의 열(Column)으로 구성됨

 

x = c(1, 3, 6)

c( )를 이용하면 여러개의 원소를 넣을 수 있음.

 

 

2. Vector 만들기( 콜론(:), seq, rep)

1:5
[1] 1 2 3 4 5

(3.1):(5.5)
[1] 3.1 4.1 5.1

콜론(:) = 1 단위의 연속적인 수 생성

 

 y = seq(from = 12, to = 30, by = 2)
 [1] 12 14 16 18 20 22 24 26 28 30				#y값 출력한 것
 
     ## from, to 생략 ##
 y = seq(12, 30, length = 19)				
 [1] 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
 
 y = seq(12, 30, length = 15)
 [1] 12.00000 13.28571 14.57143 15.85714 17.14286 18.42857 19.71429 21.00000
 [9] 22.28571 23.57143 24.85714 26.14286 27.42857 28.71429 30.00000

seq = 등차수열 생성 / (n, x, 조건) n시작 x끝 / 조건이 반드시 있어야함

 - by: 간격

 - length: 길이(원소의 갯수)

 

x = rep(8, 4)
[1] 8 8 8 8

x = rep( c(5, 12, 13), each = 3)
[1]  5  5  5 12 12 12 13 13 13

rep = 반복하기 / (n, x) n을 x만큼 반복 / 조건 필수x

 

 

3. [ ] 순서

x = 5:8
x1 = x[1:3]
[1] 5 6 7		#x1 출력

 [ ] = n번째 수 출력, Index 입력시 쓰임

위의 예문은 x = 5, 6, 7, 8 이고

x[1:3] = x의 1, 2, 3번째 원소를 나타냄

x1 = 5, 6, 7

 

 

4. 사칙연산 유의점

vector에 원소 갯수가 여러개일 경우, 각 자리에 대응하여 계산됨

두 vector의 길이가 맞지 않으면, 짧은 길이의 vector 원소를 재사용함

 

 

5. 연산자

x^2 : 거듭제곱

x**2

 

x%/%5 : x를 5로 나눈 몫

x%%5 : x를 5로 나눈 나머지

 

== 같다

!= 다르다

 

 

6. 데이터 형태(Character, Numeric, Integer, Complex, Logical)

 - Character(문자형): 타 자료형 혼합시 모두 문자형으로 변함

 - Numeric(수치형): 소수를 포함한 숫자형태

 - Integer(정수형)

 - Complex(복소수형)

 - Logical(논리형): 이진형 TRUE, FALSE로 되어있음

 

 

 

7. Filtering(필터링) = n[조건]

벡터 안에서 조건을 주고 원소 뽑아오기

z = c(5, 2, -3, 8)
z[z>0]
[1] 5 2 8

뽑으려는 벡터와 조건의 벡터가 꼭 같을 필요는 없다.

n[x] 일 때, n과 x의 열이 맞는다면 그 값에 해당하는 것 뽑기 가능

 

n = c(500, 600, 700, 800, 900, 100)
x = c("M", "W", "M", "M", "M", "W")
n[x=="M"]
[1] 500 700 800 900

벡터와 조건이 다를 때

Ex) x가 남자(M)일 때 이에 해당하는 n 숫자를 불러온 것이다.

 

x = c(3,2,4,1)
x[x>5]

numeric(0)

필터링을 했으나 조건에 부합하는 원소가 없으면 numeric(0)으로 나타난다

 

 

 

8. which()

조건을 만족시키는 원소의 위치 찾기

x = c(3,2,4,1)
which(x>5)

integer(0)

조건을 만족시키지 않아 integer(0)으로 표기됨

 

 

9. %in%   =   n %in% x

n이 x에 등장하는가?

1 %in% c(2,1,4)
[1] TRUE

c(5, 1, 4) %in% c(2, 1, 5)
[1] TRUE TRUE FALSE		#앞 뒤 순서 상관없이, 앞 순서대로 있는지만 판별

 

 

10. match()

등장하는지 and 어디에 있는지

match(c(1,3),c(2,1,4))
[1] 2 NA

c(1,3)의 1이 c(2,1,4)에 등장했음 + 2번째에 있음 -> 2 출력

c(1,3)의 3이 c(2,1,4)dp 등장X -> NA (Not Available)

댓글