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])
- d>5인 인덱스를 구한다
- d[d>5]를 구한다
- 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
리스트에서도 인덱스를 이용할 수 있다.
- [[]]을 이용한다
- 리스트이름$값의이름 을 이용한다
팩터(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가 생성되었습니다. |