일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 파이썬
- 대학원생
- R
- 영화
- 영화 일기
- 영화 리뷰
- 곤줄박이
- 심리학
- 철학
- 토양학
- 영화 해석
- mushroom #mushrooms #mushroomhunting #mushroomphotos #mushroomphotography #mycology #mycologist #fungi #fungalecology #fungaldiversity #fantasticfungi #버섯 #탐균 #버섯탐사
- 외생균근균
- 바운새
- 생명과학 균학 미생물학 Biology Mycology Microbiology
- 영화 후기
- 토양미생물학
- 에리히 프롬
- 생물정보학
- 둠칫새
- 더 웨일
- 계묘년
- 갓생
- 젖비단그물버섯
- 청도요
- RStudio
- 코딩
- Rstuido
- 탐조
- Cannon PowerShot G7 X Mark III
Archives
- Today
- Total
워라밸 중독자
[R] 1차원 데이터 구조 - 팩터(factor)와 리스트(list) 본문
데이터 분석시 주로 벡터를 다루며, 팩터와 리스트는 많이 다루지 않는다. 그래도 한 번 알아보자.
[R] 벡터(vector) 정의 및 생성
벡터(vector)란? 동일한 자료형(정수, 실수, 문자, 논리)의 값이 연속적으로 나열된 자료구조이다. 엑셀에서 '한 행'에 해당하며 일차원 데이터를 저장한다. 벡터 만들기 1. c 함수 concatenate의 첫 글
ufungi.tistory.com
팩터 (factor)
벡터의 일종이지만 지정된 원소가 아닌 값은 허용하지 않는다.
* read.csv() 함수를 이용해 파일을 불러오면 문자형 column 은 factor로 저장된다!
factor(): 팩터 생성
# 팩터의 생성
> fungi <- factor(c("mold", "mold", "mushroom", "yeast"))
# 팩터에 지정되지 않은 값 넣어보기
> fungi[5] <- "bird"
Warning message:
In `[<-.factor`(`*tmp*`, 5, value = "bird") :
요인의 수준(factor level)이 올바르지 않아 NA가 생성되었습니다.
> fungi
[1] mold mold mushroom yeast <NA> # 5번째 값에 bird가 들어가지 않고 경고문이 뜨면서 NA가 생성됨
Levels: mold mushroom yeast
# 팩터에 넣을 수 있는 값 보기
> levels(fungi)
[1] "mold" "mushroom" "yeast" # unique 함수와 유사하게 고유한 값들을 출력
# 팩터의 각 값이 몇번째 level에 대응하는지 출력
> as.numeric(fungi)
[1] 1 1 2 3 NA
리스트 (list)
동일한 자료형의 원소가 여러개인 데이터. 모든 자료형 및 데이터 구조를 포함할 수 있다. 파이썬의 dictionary 자료형과 유사하여 key - value로 이루어진다. 아래 예시에서처럼 = 를 기준으로 왼쪽은 key, 오른쪽은 value에 해당한다.
list(): 리스트 생성
> mat <- matrix(1:20, nrow = 4)
# 리스트의 생성
> morphology <- list(specimen.no = "SFC20210721-01",
genus = "Amanita",
spore.color = "white",
ring = TRUE,
spore.length = c(2.5, 2.1, 2.6, 2.8, 2.4),
spore.width = c(3.1, 3.1, 3.0, 2.9, 3.4),
matrix = mat)
> morphology
$specimen.no
[1] "SFC20210721-01"
$genus
[1] "Amanita"
$spore.color
[1] "white"
$ring
[1] TRUE
$spore.length
[1] 2.5 2.1 2.6 2.8 2.4
$spore.width
[1] 3.1 3.1 3.0 2.9 3.4
$matrix
[,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
리스트는 위 예시처럼 문자형, 논리형, 숫자형의 자료형 뿐만 아니라 벡터, 행렬 등 모든 데이터 구조를 포함할 수 있다.
리스트의 인덱싱은 [], [[]], $ 연산자를 이용한다.
> morphology[5] # [] 한 개만 쓰면 list를 출력
$spore.length
[1] 2.5 2.1 2.6 2.8 2.4
> morphology[[5]] # [] 두 개 써야 원래 데이터 구조를 출력
[1] 2.5 2.1 2.6 2.8 2.4
> morphology$spore.length # $를 써도 원래 데이터 구조를 출력
[1] 2.5 2.1 2.6 2.8 2.4
> morphology$matrix
[,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
'코딩, 딱 지금이 시작할때! (코딱지)' 카테고리의 다른 글
[R] 데이터 전처리 - 결합 (cbind, rbind, merge) (1) | 2023.01.07 |
---|---|
[R] 2차원 데이터 구조 - 행렬(matrix)과 데이터프레임(dataframe) (1) | 2023.01.06 |
[R] 데이터 구조 종류 및 확인 (스칼라, 벡터, 팩터, 리스트 / 행렬, 데이터프레임 / 배열) (0) | 2023.01.06 |
[R] 1차원 데이터 구조 - 벡터의 연산 (산술연산, 논리연산, 함수) (0) | 2023.01.05 |
[R] 특수문자 자료형 (NULL, NA, NaN, inf/-inf) (0) | 2023.01.05 |