R

R MANUALS : ② 숫자와 벡터 → 2.3 연속 숫자 생성하기

urbanlr 2021. 12. 18. 10:52
SMALL

본 글은 https://cran.r-project.org/doc/manuals/r-release/R-intro.html내용을 기반으로 작성되었습니다.

Copyright © 1999–2021 R Core Team

 

- R에서는 연속된 숫자를 쉽게 생성할 수 있음

- 예를들어 1에서 30까지 숫자는 일일이 손으로 입력하기에는 시간이 많이 걸림

- seq() 함수,, 콜론을 이용하여 쉽게 입력할 수 있음 (반대로도 가능)

> c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,265,27,28,29,30)
 [1]   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18  19
[20]  20  21  22  23  24  25 265  27  28  29  30

> seq(1,30)    # seq(시작숫자, 마지막 숫자)
 [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
[27] 27 28 29 30

> 1:30         # 시작숫자 : 마지막 숫자
 [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
[27] 27 28 29 30

> 30:1
 [1] 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10  9  8  7  6  5
[27]  4  3  2  1

 

 

- seq()의 인수에는 대표적으로 4개가 있음

- 시작숫자(from), 마지막 숫자(to), 간격(by), 갯수(length)

- 인수를 다양하게 조합하고 싶으면 인수명('=' 표시 왼쪽에 있는 것)을 사용해야함

- 인수명을 쓰지 않으면 seq(시작숫자, 마지막숫자, 간격) 순서로 자동적으로 입력됨

> seq(from=1, to=10, by=2)
[1] 1 3 5 7 9

> seq(to=10, by=2)
[1] 1 3 5 7 9

> seq(from=1, by=2, length=5)
[1] 1 3 5 7 9

> seq(1,10,2)
[1] 1 3 5 7 9

 

 

- 간격을 띄어 연속된 숫자 생성도 가능함

- 2*1:30의 경우 1:30으로 생성된 숫자 각각에 2를 곱하는 형태로 나타남

> seq(2,30,2)           # seq(시작숫자, 마지막 숫자, 간격)
 [1]  2  4  6  8 10 12 14 16 18 20 22 24 26 28 30

> 2*1:30                # 곱할 숫자 * 시작숫자:마지막숫자 (각 요소마다 앞 곱할숫자가 곱해져 출력)
 [1]  2  4  6  8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52
[27] 54 56 58 60

 

- 변수를 활용하는 것도 가능함

> seq(1,x)
 [1]  1  2  3  4  5  6  7  8  9 10

> 1:x
 [1]  1  2  3  4  5  6  7  8  9 10

 

 

- 관련된 함수로서 특정 값을 반복하는 rep() 함수가 있음

- x라는 값을 5번 반복할 수 있는 명령은 rep(x=1, times=5)임

- 인수값을 생략하면 rep(반복할 값, 반복횟수)로 입력됨

- 반복할 값은 seq(1, 5), 1:5와 같은 벡터도 가능함

- times 인수 대신 each인수를 쓰면 요소 하나하나에 반복횟수가 적용됨

> rep(x=1, times=5)  
[1] 1 1 1 1 1

> rep(1,5)           
[1] 1 1 1 1 1

> rep(x=1:5, times=5)     
 [1] 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5

> rep(1:5, 5)        
 [1] 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5

> rep(1:5, each=5)
 [1] 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5
LIST