1학년/R언어

모두를 위한 R 데이터 분석 입문 CH2. 벡터의 연산, 리스트와 팩터 정리

피까츄 2023. 12. 19. 18:00

4. 벡터의 연산

 

벡터에 대해 산술연산이 가능하다

 

벡터와 숫자값 연산

  d <-c(1,4,3,7,8)
d 2 곱한 값을 출력 2*d
d 모든 값을 2배씩 증가시킨다 d<-2*d
d 5 값을 보여준다 d-5

 

 

벡터와 벡터 간의 연산(, 벡터의 길이가 같아야 한다)

  x <-c(1,2,3)
y <-c(4,5,6)
같은 인덱스의 값끼리 더한다 x+y
같은 인덱스의 값끼리 곱한다 x*y

 

 

벡터에 적용 가능한 함수

sum() 벡터에 포함된 값들의
mean() 벡터에 포함된 값들의 평균
median() 벡터에 포함된 값들의 중앙값
max(),min() 벡터에 포함된 값들의 최댓값, 최솟값
var() 벡터에 포함된 값들의 분산
sd() 벡터에 포함된 값들의 표준편차
sort() 벡터에 포함된 값들의 정렬(오름차순이 기본)
range() 벡터에 포함된 값들의 범위(최솟값~ 최댓값)
length() 벡터에 포함된 값들의 개수(길이)

 

sort sort(d, decreasing = FALSE) #오름차순 정렬
  sort(d, decreasing = TRUE) #내림차순 정렬

 

 

벡터에 논리연산자 적용 (<,<=,>,>=,==,!=,|,&)

sum()함수를 사용할 있고, 변수에 조건문을 저장할 있다.

d <=c(1,2,3,4,5,6,7,8,9)

벡터 d 포함된 값들이 5보다 크거나 같은가? d>=5 TRUE, FALSE 출력된다
벡터 d 값이 5보다 값의 인덱스는 무엇인가? d[d>5] 6,7,8,9 (인덱스) 출력된다
5보다 값의 개수를 출력 sum(d>5) TRUE=1,FALSE=0으로 간주
5보다 값의 합계를 출력 sum(d[d>5])  
condi 조건문을 저장 condi <-d>5&d<8  
변수에 저장된 조건문을 사용할 있다. d[condi]  

 

sum(d[d>5])

  1. d>5 인덱스를 구한다
  2. d[d>5] 구한다
  3. sum(d[d>5]) 구한다

 


5. 리스트와 팩터

 

리스트(list): 서로 다른 자료형의 값들을 저장하고 다룰 있도록 해주는 수단

list()함수 이용해 생성한다.

 

 my.info 리스트에
4
가지 정보를 저장
ds <- c(90,85,70,84)
my.info <-list(name='Tom',age=60,status=TRUE,score=ds)
리스트를 출력 my.info
리스트의 첫번째 인덱스를 출력 my.info[[1]]
리스트의 name 인덱스를 출력한다 my.info$name

 

$name
[1] "Tom"

$age
[1] 60

$status
[1] TRUE

$score
[1] 90 85 70 84

 

리스트에서도 인덱스를 이용할 있다.

  1. [[]] 이용한다
  2. 리스트이름$값의이름 이용한다

 

 

 

팩터(factor): 벡터의 일종, 범주형 자료 저장한다, factor() 함수 이용한다.

범주형 자료: 성별, 혈액형과 같이 범주로 구분할 있는 .

 

팩터는 사전에 정의된 외에 다른 값을 입력하지 못하도록 한다.

 

팩터 bt.new 정의 bt <-c('A','B','B','O','AB','A')
bt.new <-factor(bt)
팩터 bt.new bt 달리 levels
표시해준다
bt
bt.new
팩터에 저장된 값들의 종류를 알려준다 levels(bt.new)
문자값을 규칙에 따라 숫자로 변환한다 as.integer(bt.new)
범주 내의 값에 한해 값을 추가할 있다 bt.new[7] <-'B'
범주 값이 아니라면 추가할 없다 bt.new[8] <-'C'

 

  bt.new
[1] A  B  B  O  AB A
Levels: A AB B O
  levels(bt.new)
[1] "A"  "AB" "B"  "O"
  as.integer(bt.new)
[1] 1 3 3 4 2 1
  bt.new[8] <-'C'
경고메시지():
`[<-.factor`(`*tmp*`, 8, value = "C")
에서:
 
요인의 수준(factor level)이 올바르지 않아 NA가 생성되었습니다.