R 할줄 R지? #3 - 벡터(Vector) 이해하기
- 프로그램언어/R
- 2018. 12. 24.
인트로
이전 시간에 R의 기본 구조와 변수에 대한 설명을 하였습니다. 오늘은 R을 좀 더 복잡한 데이터 타입인 벡터에 대해서 이해를 해보로록 하겠습니다.
이전 강의
벡터(Vector)
학창시절 수학 시간에 졸지만 않았다면 벡터(Vector)라는 것을 다들 들어보셨을 겁니다. 누구는 저 말을 보자마자 R을 끄고 싶을지 모르겠지만 최소한 컴퓨터에서는 수학시간보다는 재미있으니 조금만 참고 이 개념을 이해하셨으면 좋겠습니다.
일단 벡터는 같은 데이터의 타입의 배열 데이터를 의미합니다. 즉, 숫자들이라면 숫자의 모음... 문자형이라면 문자들의 배열형을 뜻합니다.
벡터 생성
x <- c(1,5,7)
x
## 1 5 7
## 은 결과 데이터
벡터는 보시는 대로, c와 추가하고 싶은 배열 값을 지정하여 벡터를 생성할 수 있습니다. 위의 내용을 실행하여, x의 값을 출력해보면 1, 5, 7이라는 배열이 x 변수에 저장이 된 것을 확인할 수 있습니다.
특정 위치값 호출
x[2]
## 5
x의 특정 값을 불러 들일려면 시퀀스(순서값)를 지정하여 불러들일 수 있습니다. 위의 예시는 x의 2번째 값을 호출하였는데 결과처럼 5라는 값이 나온 것을 알 수 있습니다.
특정 위치값 호출, 시작 ~ 종료
x[2:3]
## 5 7
시퀀스를 하나만 지정하지 않고 여러개 지정이 가능합니다. 예시처럼 시작위치부터 종료 위치를 지정하게 되면 해당되는 모든 값을 호출 할 수 있습니다.
배열 추가
x[4]
## NA
x[4] = 1000
x
## 1 5 7 1000
현재 예시로 표현한 배열은 3개(3,5,7) 밖에 없기 때문에 x[4]와 같이 없는 값을 호출하게 되면 NA라는 없는 값이 호출됩니다. NA는 Not Available이라는 약어로 결측치(Missing Value)를 의미합니다.
다른 프로그램 언어와 다르게 R은 자연스럽게 동적으로 배열을 확장시킬 수 있습니다. 위와 같이 x[4]에 1000이라는 값을 넣으면 4의 위치에 값이 추가됩니다. 기존의 언어들은 배열의 크기가 고정되어 있고, 동적으로 선언을 하려면 리스트 방식을 사용하는 것에 비해서 상당히 R은 쉽습니다.
배열의 길이값 확인
length(x)
## 4
length 펑션을 사용하면, 지정된 배열의 길이를 알 수 있습니다. 1,5,7,1000 즉 4개의 길이를 가진 배열이기 때문에 4가 리턴된 것을 확인할 수 있습니다.
배열 추가
x = append(x, c(8,10))
x
## 1 5 7 1000 8 10
append 펑션을 사용하여, 기존의 배열에 새로운 배열을 추가할 수 있습니다.
사용법은 append(배열, 신규배열) 입니다. 위 예제에서 보는 것처럼 8, 10의 값이 추가된 것을 확인 할 수 있습니다.
배열 반복
rep(x, 3)
x
## 1 5 7 1000 8 10 1 5 7 1000 8 10 1 5 7 1000 8 10
rep(repeat) 이라는 명령어를 사용하여, 배열을 반복 호출할 수 있습니다.
사용법은 rep(배열, 반복횟수) 입니다.
배열 반복, each 활용
rep(x, 1, each=3)
## 1 1 1 5 5 5 7 7 7 1000 1000 1000 8 8 8 10 10 10
rep 명령어에 each를 인자값으로 추가할 수 있습니다.
rep(x, 1, each=3)의 의미는 x 배열을 연속으로 3번씩 출력하며 한바퀴만 돌리라는 의미입니다. rep(x, 3)다른 점이 보이시나요? 만약에 rep(x, 2, each=3)으로 한다면 아래와 같이 출력이 됩니다.
1 1 1 5 5 5 7 7 7 1000 1000 1000 8 8 8 10 10 10 1 1 1 5 5 5 7 7 7 1000 1000 1000 8 8 8 10 10 10
each를 추가하면 아무튼 루프를 하는 동안 반복으로 특정 위치의 값을 연속으로 출력하는 거라고 이해하시면 됩니다.
설명에 활용된 전체 R 스크립트
x <- c(1,5,7)
x
x[2]
x[2:3]
x[4]
x[4] = 1000
x
# 배열의 길이값을 리턴
length(x)
# 배열을 추가
x = append(x, c(8,10))
x
# 전체 배열을 3번 반복
rep(x, 3)
x
# 전체 배열을 반복하지 않지만, 값을 연속으로 3번 출력한다.
rep(x, 1, each=3)
# 전체 배열을 2번 반복하며, 값을 연속으로 3번 출력한다.
rep(x, 2, each=3)
'프로그램언어 > R' 카테고리의 다른 글
R 할줄 R지? #5 - 벡터 연산편 (0) | 2019.01.16 |
---|---|
R 할줄 R지? #4 - 벡터 심화편 (0) | 2018.12.27 |
R강의 #2 - 변수 이해하기편 (0) | 2018.08.29 |
R강의 #1 - 데이터 기본구조편 (0) | 2018.08.28 |
R의 도움말 확인법 (0) | 2017.08.16 |