R, RStudio

R 데이터 구조 벡터(vector) 기본 정리

진리뷰 2023. 11. 27. 09:00
반응형

 

 

R-데이터구조-벡터-vector-기본-정리-썸네일
R 벡터 기본 정리

 

 

 

R 데이터 구조

 

R의 데이터 구조는 1차원 벡터와 리스트, 2차원 매트릭스(행렬, matrix)와 데이터프레임(data.frame), 2차원 이상의 어레이(배열, array) 등이 있다.

이 중 1차원 벡터에 대한 기본을 정리하고자 한다.

 

 

 

R 벡터(vector)

 

  • 1차원 일렬 배열
  • 하나의 자료형태로만 구성(오직 문자, 오직 숫자..)
  • 팩터를 사용해서 범주형으로 가능

 

R-데이터구조-벡터
(좌) R 벡터 숫자형과 문자형, (우) R 벡터에 팩터 사용

 

 

 

벡터; 강제 자료형태 바꾸기

 

v2에 숫자 24와 문자 Tom 저장 시 숫자 24를 문자로 인식한다. 때문에 v2를 문자형태로 인식한다.

왜냐하면 문자는 숫자가 될 수 없지만, 숫자는 문자가 될 수 있다.

즉,  숫자보다 문자가 더 포괄적이다.

따라서 하나의 자료형태만 취급하는 벡터는 문자가 있으면, 숫자를 문자로 바꿔 저장한다.

 

R-벡터-데이터타입
R 벡터 자료형태

 

 

 

벡터 원소(요소)에 이름 지정 방법 names()

 

  • names(): 벡터에 저장된 값(요소)의 이름을 확인할 때 사용

 

변수 height에 숫자형인 159, 178, 164라는 값만 저장 후, names()로 이름을 확인하면 NULL이 뜬다.

하지만 names(height)에 값 별로 이름을 지정 후, height에 저장된 값별 이름을 확인하면 순차적으로 이름이 뜬다.

저장된 값과 입력된 이름의 순서가 매칭되기에,  순서를 고려하여 이름을 지정해야 한다.

 

변수명만 입력하면, 지정된 이름과 값이 함께 출력된다.

이때 변수 height에 저장된 값은 숫자형이었기에 class()로 확인 시, numeric으로 출력된다.

 

R-벡터-names
R names()

 

 

 

벡터의 인덱싱 []

 

  • 인덱스: 순서가 있는 경우, 순차적으로 해당 값에 번호가 매겨진다. 이는 검색을 용이하게 한다.
  • 대괄호 [ ]를 이용해서, 몇 번째 위치에 어떤 값이 있는지 확인 가능.
  • 벡터는 대괄호 안에 콤마(,) 사용 시 에러 발생. 따라서 c() 안에 콤마를 사용하고 대괄호로 묶어준다.
  • R 인덱스의 첫 번째는 0이 아닌, 1이다. 따라서 첫번째 값은 [1]로 검색해야 한다. 

 

v1에 문자 a, b, c를 저장했다.

v1[1]은 v1의 첫 번째 위치에 무엇이 있는가를 물어본다는 의미이다.

이때 v1의 네 번째 위치에는 아무것도 없으므로 NA가 출력된다.

*NA: 특수값 중 하나인 결측값 missing value, 찾을 수 없는 값을 의미.

*특수값 관련 글 추천 R 변수 기본 정리

 

벡터 대괄호 안에 콤마 사용하면 에러 발생하므로, 띄엄띄엄 있는 여러 값을 찾고 싶다면 c() 안에 콤마를 사용하자.

만약 연속적인 값을 찾는다면, 대괄호 안에 콜론(:)을 활용할 수 있다.

 

R-벡터-인덱싱
R 벡터 인덱싱

 

 

 

벡터 특정 값 제외하고 출력하는 방법

 

  • R 인덱스에서 마이너스(-) 기호는 제외한다는 의미다.
  • 마이너스(-)는 첫 번째부터 읽어, 해당 위치의 값을 제외한다. 

 

v1에 1부터 10까지 저장했다.

v1[-5]은 첫 번째부터 읽어서 5번째 값인 5를 제외하고 출력한다는 의미이다.

연속적인 값을 제외하고 싶다면 -c()를 이용한다.

등차수열 seq()를 활용하여, 특정 값들을 제외할 수도 있다.

 

벡터-인덱싱-마이너스
R 벡터 인덱싱 특정 값 제외

 

 

 

벡터 이름 지정 시, 이름으로 인덱싱하는 방법

 

  • names()으로 원소명 지정 시, 대괄호에 해당 원소명 입력.

 

위에서 언급했듯, names()를 활용하면 벡터의 원소 별 이름을 지정할 수 있다.

height에 저장된 159, 178, 164는 각각의 이름이 지정되어 있다.

첫 번째 값은 Selena라는 이름이 지정된 159이다.

그래서 height["Selena"]로 검색해도 height[1]과 같은 결과를 산출한다.

또한 여러 개의 이름으로 검색하고 싶다면, 대괄호 안에 c()를 활용한다.

 

R-벡터-names-인덱싱
R 벡터 이름으로 값 추출

 

 

 

 

벡터 원소값 변경

 

  • 대괄호 [ ]를 활용하여, 특정 원소값 변경 가능

 

v1에 1부터 5까지 저장했다.

v1[1] <- 5는 v1의 첫 번째 값을 5로 변경한다는 의미이다.

여러 값을 변경하고 싶다면 대괄호 안에 c()를 활용한다.

v1[c(2, 3, 4)] <- c(5, 5, 5)는 v1의 두 번째, 세 번째, 네 번째 값을 모두 5로 변경한다는 의미이다.

 

R-벡터-원소값-변경
R 벡터 원소값 변경

반응형
top