JJUNNAK's

[ R ] 변수, 벡터(vector) 본문

Language/R

[ R ] 변수, 벡터(vector)

최낙준 2023. 1. 17. 02:41

변수

변수의 개념은 일반적인 프로그램언어의 변수와 같음.

[ 변수 선언 ]

a <- 5
b <- a * 5 
c <- sqrt(20)
name <- "jjunnak"
A <- NULL 
B <- NA

[ 자료형 ]

위의 논리형 TRUE , FALSE 에 산술연산을 적용하면 TRUE = 1 / FALSE = 0 으로 변환된다.


 

벡터 Vector

벡터는 여러개의 값을 하나의 묶음으로 처리하기 위한 자료형으로

프로그래밍 언어에서의 1차원 배열과 같다.

[ 벡터 선언 ]

score <- c(90, 95, 30, 13, 24) 
name <- c("nak", "dong", "soon", "Ra") 
fact <- c(TRUE, FALSE, TRUE, TRUE)

변수에 c() 함수를 이용하여 값들을 묶어서 저장함.

여기서 c 는 combine(결합)의 약자임.

벡터를 선언할 때에는 반드시 동일한 자료형의 값이 저장되어야 함.

위 예시에서 score에는 숫자형 , name은 문자형, fact에는 논리형의 값들을 저장함.

또한 다음과 같이 일정한 패턴이 있는경우 보다 간단하게 선언할 수 있음.

# a <- 시작:종료 
a <- 50:100 # 50에서 100 사이의 정수(50~100)
b <- c(1, 2, 3, 4:10) # 1,2,3 그리고 4~10 까지의 정수


# seq(시작, 종료, 간격) 
c <- seq(1,101,3) # 1~101까지 3의 간격으로 저장 


# rep(반복대상, times=반복횟수) or rep(반복대상, each=반복횟수)
d <- rep(1, times=10) # 1을 10번 반복 1,1,1,1,1,1,1,1,1,1 
d <- rep(1:3, times=3) # 1~3까지 3번 반복 1,2,3,1,2,3,1,2,3
d <- rep(c(1,2,3), each=3) # 1,1,1,2,2,2,3,3,3

[ 벡터의 값에 이름 붙이기 ]

벡터에 저장된 값에 이름을 붙일 수 있다.

sales <- c(10,4,3,2,9,11,15) # 벡터선언 
names(sales) <- c('mon','tue','wed','thu','fri','sat','sun')
 

sales 에 판매수량을 입력하고

입력된 7개의 값에 요일을 이름으로 저장시켰다.

이를 출력하면 결과는 다음과 같다.

> sales
mon tue wed thu fri sat sun 
 10  4   3   2   9   11  15

[ 벡터 요소에 접근하기 ]

일반적인 프로그래밍 언어와 달리 R은 인덱스가 0이 아닌 1부터 시작이 된다.

a <- c(1,2,3,4,5)
> a # 1 2 3 4 5 
> a[1] # 1
> a[2] # 2 
> a[6] # NA 벡터 a의 6번째 요소에는 아직 대응되는 값이 없으므로 NA(결측값) 가 출력된다.
> a[c(1,3,4)] # 1 3 4 
> a[1:4] # 1 2 3 4 
> a[seq(1,5,2)] # 1 3 5 
> a[-2] # 1 3 4 5 * ' - ' 는 '제외'의 의미.

또한 이름으로도 값을 추출할 수 있다.

sales <- c(10,4,3,2,9,11,15)
names(sales) <- c('mon','tue','wed','thu','fri','sat','sun')

> sales[1] # 10 
> sales['mon'] # 10
> sales[c('tue','fri')] # 4 9

벡터에 저장된 값을 변경 할때에는 다음과 같이 한다.

a <- c(1,2,3,4,5) 

> a[1] <- 11 # a = 11 2 3 4 5 
> a[c(2,5)] <- c(12,15) # a = 11 12 3 4 15

[ R에서 사용하는 벡터 연산자와 관련 함수 ]

 

'Language > R' 카테고리의 다른 글

[ R ] 매트릭스 Matrix  (0) 2023.01.17
[ R ] 리스트 List  (0) 2023.01.17
[ R ] 팩터 Factor  (0) 2023.01.17
[ R ] 도움말 보는법  (0) 2023.01.17
[ R ] 패키지 설치 & 사용 하는법  (0) 2023.01.17
Comments