1. 벡터(vector)
벡터 데이터 구조는 숫자, 문자 등 원소들의 집합으로 이루어진 배열이다. 동일한 자료형의 값이 여러 개 연속되어 있다.
가장 단순한 R 데이터 구조로, 원소가 숫자면 숫자 벡터, 문자면 문자 벡터가 된다. 원소 중 문자가 하나라도 있을 경우엔 문자 벡터가 된다.
명령어 "c"를 이용해 선언된다.
- c(원소1, 원소2, 원소3...)
a <- c(1,2,3)
b <- c("a","b","c")
c <- c(TRUE,FALSE,TRUE)
d <- c(1,2,"a","b")
이 경우 a는 숫자 1, 2, 3으로 이루어진 숫자 벡터, b는 문자 a, b, c로 이루어진 문자 벡터, c는 논리연산자로 이루어진 벡터이다.
d 벡터의 경우 숫자와 문자가 섞여 있으므로 문자벡터로 모든 원소가 문자로 인식된다.
> d
[1] "1" "2" "a" "b"
d 변수의 출력화면에 모두 문자로 인식됨을 확인할 수 있다.
2. 행렬(matrix)
벡터는 원소들의 집합인 1차원이지만, 행렬은 행렬은 행과 열로 이루어진 2차원의 데이터 형태이다. 명령어 matrix를 통해 선언된다.
* 데이터 프레임 또한 2차원 형태의 데이터 구조로, 행렬은 모든 데이터 유형이 동일해야 하나 데이터 프레임은 서로 다른 유형의 데이터가 저장될 수 있다.
- matrix(행렬에 들어가는 데이터들을 묶어놓은 벡터c(~,~), ncol=열의 수, nrow=행의 수)
아래와 같이 a라는 변수에 원소가 1부터 6까지인 벡터를 열의 갯수가 3개인 행렬로 생성하였다. (2*3 행렬 생성)
> a <- matrix(c(1,2,3,4,5,6), ncol=3)
> a
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
행렬의 데이터는 열부터 채워지는데, 행부터 채우고자 하는 경우 byrow=T 옵션을 추가한다.
> a <- matrix(c(1,2,3,4,5,6), ncol=3, byrow=T)
> a
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 4 5 6
기존에 생성되어 있는 벡터를 결합하여 행렬을 생성할 수 있다 : 행방향 결합 rbind, 열방향 결합 cbind 함수
- rbind(결합하고자 하는 벡터1, 벡터2) -> 벡터 1, 2가 1행, 2행이 됨
- cbind(결합하고자 하는 벡터1, 벡터2) -> 벡터 1, 2가 1열, 2열이 됨
> a <- c(1,2,3)
> b <- c(10,20,30)
> rbind(a,b)
[,1] [,2] [,3]
a 1 2 3
b 10 20 30
> cbind(a,b)
a b
[1,] 1 10
[2,] 2 20
[3,] 3 30
3. 배열(array)
배열은 2차원 데이터 구조를 쌓아 올린 형태로, 행렬 형태의 데이터를 층위별로 저장한다.
- array(배열에 들어가는 데이터 벡터c(~~~), dim=c(행수,열수,층수))
> array(c(1,2,3,4,5,6),dim = c(3,2,2))
, , 1
[,1] [,2]
[1,] 1 4
[2,] 2 5
[3,] 3 6
, , 2
[,1] [,2]
[1,] 1 4
[2,] 2 5
[3,] 3 6
4. 데이터 프레임(data frame)
명령어 data.frame으로 생성되며 행렬과는 다르게 각 열이 서로 다른 데이터 타입을 가질 수 있으나 각 열의 데이터 타입은 동일해야 한다.
데이터 프레임이 생성된 뒤에는 행렬과 동일하게 다룰 수 있다.
- data.frame(벡터1, 벡터2,...)
> a <- c(1,2,3)
> b <- c("apple","orange","banana")
> data.frame(a,b)
a b
1 1 apple
2 2 orange
3 3 banana
숫자벡터 a, 문자벡터 c로 구성된 데이터 프레임이 생성된 것을 확인할 수 있다.
5. 리스트(list)
벡터와 비슷하나 벡터와 달리 여러 자료형의 데이터를 섞어서 저장할 수 있다.(벡터나 data frame 등도 원소로 저장 가능)
> a <- c(1,2,3)
> b <- c("apple","orange","banana")
> list(100,a,b,"lee","kim")
[[1]]
[1] 100
[[2]]
[1] 1 2 3
[[3]]
[1] "apple" "orange" "banana"
[[4]]
[1] "lee"
[[5]]
[1] "kim"
'도구들 > R,파이썬' 카테고리의 다른 글
[파이썬] 웹 크롤링 시작하기 1. requests 모듈로 요청 보내기 (0) | 2022.01.11 |
---|---|
[python] 파이썬 주피터 노트북 시작해보기(ipynb 파일) (0) | 2021.12.01 |
파이썬(아나콘다) 다운로드, 설치시 PATH 지정 (0) | 2021.07.03 |
R 변수 저장하기 (0) | 2019.03.18 |
R/R 스튜디오 다운로드 및 설치 (0) | 2019.01.27 |