일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 곤줄박이
- 영화
- 코딩
- 영화 일기
- 바운새
- 영화 리뷰
- 에리히 프롬
- 청도요
- 생명과학 균학 미생물학 Biology Mycology Microbiology
- 철학
- Rstuido
- 토양학
- 파이썬
- Cannon PowerShot G7 X Mark III
- 계묘년
- RStudio
- 더 웨일
- 탐조
- 심리학
- 토양미생물학
- 영화 해석
- 대학원생
- 젖비단그물버섯
- 갓생
- 생물정보학
- R
- 영화 후기
- 둠칫새
- mushroom #mushrooms #mushroomhunting #mushroomphotos #mushroomphotography #mycology #mycologist #fungi #fungalecology #fungaldiversity #fantasticfungi #버섯 #탐균 #버섯탐사
- 외생균근균
Archives
- Today
- Total
워라밸 중독자
[R] 인덱싱(indexing) - 데이터에서 원하는 값 추출 본문
인덱싱이란 raw 데이터로부터 원하는 데이터를 선별하는 작업이다.
벡터 인덱싱
[ ] 연산자
벡터[ ] 와 같이 쓰며 [ ] 안에 다음 함수와 연산자를 함께 자주 사용한다.
- c() → 여러 값을 추출
- : → 연속된 값을 추출
- - → 특정 값을 제외하고 추출
- 논리연산자 (<, ==, &, | 등) → 조건을 만족하는 값 추출
# 벡터 생성
> x <- c(1:10)
# 3번째 값 추출
> x[3]
[1] 3
# 1, 2 번째 값 추출
> x[c(1,2)]
[1] 1 2
# 1 ~ 3 번째 값 추출
> x[1:3]
[1] 1 2 3
# 1, 3번째 값 제외하고 추출
> x[c(-1,-3)]
[1] 2 4 5 6 7 8 9 10
# 5보다 작은 값 추출
> x[x < 5]
[1] 1 2 3 4
# 3보다 작거나 8보다 큰 값 추출
> x[x < 3 | x > 8]
[1] 1 2 9 10
리스트 인덱싱
# 리스트 생성
> x <- list(v1 = c(1:10),
+ v2 = c("a","b","c","d"),
+ mat = matrix(1:20, nrow=4),
+ df = iris[1:10,])
# 리스트 출력
> x
$v1
[1] 1 2 3 4 5 6 7 8 9 10
$v2
[1] "a" "b" "c" "d"
$mat
[,1] [,2] [,3] [,4] [,5]
[1,] 1 5 9 13 17
[2,] 2 6 10 14 18
[3,] 3 7 11 15 19
[4,] 4 8 12 16 20
$df
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa
7 4.6 3.4 1.4 0.3 setosa
8 5.0 3.4 1.5 0.2 setosa
9 4.4 2.9 1.4 0.2 setosa
10 4.9 3.1 1.5 0.1 setosa
# 리스트의 3번째 원소 출력
> x[3] # [ ] 는 리스트로 추출
$mat
[,1] [,2] [,3] [,4] [,5]
[1,] 1 5 9 13 17
[2,] 2 6 10 14 18
[3,] 3 7 11 15 19
[4,] 4 8 12 16 20
> class(x[3])
[1] "list"
> x[[3]] # [[ ]] 는 3번째 원소의 원래 형식인 행렬로 추출
[,1] [,2] [,3] [,4] [,5]
[1,] 1 5 9 13 17
[2,] 2 6 10 14 18
[3,] 3 7 11 15 19
[4,] 4 8 12 16 20
> class(x[[3]])
[1] "matrix" "array"
데이터프레임 인덱싱
데이터프레임 인덱싱은 R에 내장되어있는 iris 데이터셋을 이용한다.
[ ] 연산자
데이터프레임[ i, j ] 을 이용하여 i 행 j 열의 값을 찾을 수 있다 (행렬에도 적용됨).+
컬럼 추출시 [숫자] 는 데이터프레임, [[숫자]] 와 [,숫자]는 벡터로 출력
# 2행 3열 추출
> iris[2,3] # 벡터로 출력
[1] 1.4
# 2행 추출
> iris[2,] # 데이터프레임으로 출력
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
2 4.9 3 1.4 0.2 setosa
# 2열 추출
> iris[2] # 데이터프레임으로 출력
Sepal.Width
1 3.5
2 3.0
3 3.2
4 3.1
5 3.6
6 3.9
7 3.4
8 3.4
9 2.9
10 3.1
11 3.7
12 3.4
13 3.0
...
> iris[,2] # 벡터로 출력
[1] 3.5 3.0 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 3.7 3.4 3.0 3.0 4.0 4.4 3.9 3.5 3.8 3.8 3.4 3.7 3.6 3.3 3.4 3.0 3.4 3.5 3.4 3.2 3.1 3.4 4.1 4.2 3.1 3.2 3.5 3.6 3.0
[40] 3.4 3.5 2.3 3.2 3.5 3.8 3.0 3.8 3.2 3.7 3.3 3.2 3.2 3.1 2.3 2.8 2.8 3.3 2.4 2.9 2.7 2.0 3.0 2.2 2.9 2.9 3.1 3.0 2.7 2.2 2.5 3.2 2.8 2.5 2.8 2.9 3.0 2.8 3.0
[79] 2.9 2.6 2.4 2.4 2.7 2.7 3.0 3.4 3.1 2.3 3.0 2.5 2.6 3.0 2.6 2.3 2.7 3.0 2.9 2.9 2.5 2.8 3.3 2.7 3.0 2.9 3.0 3.0 2.5 2.9 2.5 3.6 3.2 2.7 3.0 2.5 2.8 3.2 3.0
[118] 3.8 2.6 2.2 3.2 2.8 2.8 2.7 3.3 3.2 2.8 3.0 2.8 3.0 2.8 3.8 2.8 2.8 2.6 3.0 3.4 3.1 3.0 3.1 3.1 3.1 2.7 3.2 3.3 3.0 2.5 3.0 3.4 3.0
> iris[[2]] # 벡터로 출력
[1] 3.5 3.0 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 3.7 3.4 3.0 3.0 4.0 4.4 3.9 3.5 3.8 3.8 3.4 3.7 3.6 3.3 3.4 3.0 3.4 3.5 3.4 3.2 3.1 3.4 4.1 4.2 3.1 3.2 3.5 3.6 3.0
[40] 3.4 3.5 2.3 3.2 3.5 3.8 3.0 3.8 3.2 3.7 3.3 3.2 3.2 3.1 2.3 2.8 2.8 3.3 2.4 2.9 2.7 2.0 3.0 2.2 2.9 2.9 3.1 3.0 2.7 2.2 2.5 3.2 2.8 2.5 2.8 2.9 3.0 2.8 3.0
[79] 2.9 2.6 2.4 2.4 2.7 2.7 3.0 3.4 3.1 2.3 3.0 2.5 2.6 3.0 2.6 2.3 2.7 3.0 2.9 2.9 2.5 2.8 3.3 2.7 3.0 2.9 3.0 3.0 2.5 2.9 2.5 3.6 3.2 2.7 3.0 2.5 2.8 3.2 3.0
[118] 3.8 2.6 2.2 3.2 2.8 2.8 2.7 3.3 3.2 2.8 3.0 2.8 3.0 2.8 3.8 2.8 2.8 2.6 3.0 3.4 3.1 3.0 3.1 3.1 3.1 2.7 3.2 3.3 3.0 2.5 3.0 3.4 3.0
# 2행 1,5열 추출
> iris[2,c(1,5)] # 데이터프레임으로 출력
Sepal.Length Species
2 4.9 setosa
# 1~4행 & 1~3열 추출
> iris[1:4,1:3] # 데이터프레임으로 출력
Sepal.Length Sepal.Width Petal.Length
1 5.1 3.5 1.4
2 4.9 3.0 1.4
3 4.7 3.2 1.3
4 4.6 3.1 1.5
또한 컬럼명을 이용해 값을 추출할 수도 있다 (행렬에도 적용됨).
[ , "컬럼명"] => 벡터로 출력
["컬럼명"] => 데이터프레임으로 출력
> iris[,"Species"] # 벡터 형식으로 출력
[1] setosa setosa setosa setosa setosa setosa setosa setosa setosa setosa setosa setosa setosa setosa
[15] setosa setosa setosa setosa setosa setosa setosa setosa setosa setosa setosa setosa setosa setosa
[29] setosa setosa setosa setosa setosa setosa setosa setosa setosa setosa setosa setosa setosa setosa
[43] setosa setosa setosa setosa setosa setosa setosa setosa versicolor versicolor versicolor versicolor versicolor versicolor
[57] versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor
[71] versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor
[85] versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor
[99] versicolor versicolor virginica virginica virginica virginica virginica virginica virginica virginica virginica virginica virginica virginica
[113] virginica virginica virginica virginica virginica virginica virginica virginica virginica virginica virginica virginica virginica virginica
[127] virginica virginica virginica virginica virginica virginica virginica virginica virginica virginica virginica virginica virginica virginica
[141] virginica virginica virginica virginica virginica virginica virginica virginica virginica virginica
Levels: setosa versicolor virginica # 팩터
> iris["Species"] # 데이터프레임 형식으로 출력
Species
1 setosa
2 setosa
3 setosa
4 setosa
5 setosa
6 setosa
7 setosa
8 setosa
9 setosa
10 setosa
11 setosa
...
$ 연산자
데이터프레임$컬럼명을 이용해 컬럼을 벡터로 추출할 수 있다 (행렬에서는 사용 불가).
> iris$Species
[1] setosa setosa setosa setosa setosa setosa setosa setosa setosa setosa setosa setosa setosa setosa
[15] setosa setosa setosa setosa setosa setosa setosa setosa setosa setosa setosa setosa setosa setosa
[29] setosa setosa setosa setosa setosa setosa setosa setosa setosa setosa setosa setosa setosa setosa
[43] setosa setosa setosa setosa setosa setosa setosa setosa versicolor versicolor versicolor versicolor versicolor versicolor
[57] versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor
[71] versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor
[85] versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor versicolor
[99] versicolor versicolor virginica virginica virginica virginica virginica virginica virginica virginica virginica virginica virginica virginica
[113] virginica virginica virginica virginica virginica virginica virginica virginica virginica virginica virginica virginica virginica virginica
[127] virginica virginica virginica virginica virginica virginica virginica virginica virginica virginica virginica virginica virginica virginica
[141] virginica virginica virginica virginica virginica virginica virginica virginica virginica virginica
Levels: setosa versicolor virginica
'코딩, 딱 지금이 시작할때! (코딱지)' 카테고리의 다른 글
[Python] 사진 및 영상 배경 쉽게 제거해주는 프로그램 (무료, 여러개 한번에) (0) | 2023.01.12 |
---|---|
[R] 사용자 설치 패키지 모두 삭제 (0) | 2023.01.12 |
[R] 데이터프레임 쓰기 및 읽기 - read.table(), write.table() (0) | 2023.01.07 |
[R] 데이터 전처리 - 결합 (cbind, rbind, merge) (1) | 2023.01.07 |
[R] 2차원 데이터 구조 - 행렬(matrix)과 데이터프레임(dataframe) (1) | 2023.01.06 |