Rst

R 언어 데이터관련 기초

/AI

1. 기본 데이터 유형

2. 기본 연산

기본연산자

데이터 유형 확인
mode(10+1) == "numeric"
mode(mode(10+1)) == "character"

수학 함수

3. 데이터 객체

데이터 객체 별 구조 및 특징
R의 데이터 저장 방식은 아래와 같다.
| 데이터 객체 | 차원 | 복수 데이터 유형 | | :———-: | :—–: | :—–: | | vector | 1차원 | 불가 | | matrix | 2차원 | 불가 | | list | 2차원 이상 | 가능 | | data frame | 2차원 | 가능 |

데이터 객체 명명 규칙

값 항당 방법
아래는 모두 같은 결과를 나타낸다.

x = log(2)  
x <- log(2)  
log(2) -> x

객체 관리
ls(), objects() 함수를 통해서 현재 생성되어있는 객체를 확인 할 수 있다.

객체 삭제
rm()함수를 통해서 객체를 삭제할 수 있다.

rm(a) # a 삭제
rm(list = ls()) # 전체 객체 삭제

4. Vector

하나 이상의 data값으로 구성된 1차원 자료구조.
한 가지 유형의 데이터만 입력가능하다.

백터 할당 방법

: 연산자 이용

> vector_1 = -3:3; vector_1
[1] -3 2 1 0 1 2 3

c() - combine 함수
인자로 넘겨주는 원소들을 묶어서 벡터로 생성한다. 다음의 특징이 있다.

seq()사용

> seq(4)
[1] 1 2 3 4
> seq(1, 4)
[1] 1 2 3 4
> seq(1, 4, by=0.5)
[1] 1.0 1.5 2.0 2.5 3.0 3.5 4.0
> seq(from=1, to=4, by=0.5)
[1] 1.0 1.5 2.0 2.5 3.0 3.5 4.0
> seq(1, 4, length=8)
[1] 1.000000 1.428571 1.857143 2.285714 2.714286 3.142857 3.571429
[8] 4.000000

rep() 사용

> rep(2)
[1] 2
> rep(2, 3)
[1] 2 2 2
> rep(c(1, 2), 2)
[1] 1 2 1 2
> rep(c(1, 2), times=2)
[1] 1 2 1 2
> rep(c(1, 2), each=2)
[1] 1 1 2 2

paste() 사용

> paste("A", 1:5)
[1] "A 1" "A 2" "A 3" "A 4" "A 5"
> paste("A", 1:5, sep="")
[1] "A1" "A2" "A3" "A4" "A5"
> paste("A", 1:5, 5:1, sep=",")
[1] "A,1,5" "A,2,4" "A,3,3" "A,4,2" "A,5,1"

names()를 통한 원소의 이름 정의

> x = 1:4
> names(x) = c('a', 'b', 'c', 'd')
> names(x)
[1] "a" "b" "c" "d"
> x
a b c d 
1 2 3 4 

원소 접근


5. Matrix

matrix는 동일한 자료형으로 이루어진 2차원 자료구조.
matrix를 정의하는 속성은 다음과 같다.

Vector를 이용한 Matrix 생성
rbind()cbind를 사용가능.

> r1 = 1:5; r2 = 6:10
> mat1 = rbind(r1, r2); mat1
   [,1] [,2] [,3] [,4] [,5]
r1    1    2    3    4    5
r2    6    7    8    9   10
> c1 = 1:5; c2 = 6: 10
> mat1 = cbind(c1, c2); mat1
     c1 c2
[1,]  1  6
[2,]  2  7
[3,]  3  8
[4,]  4  9
[5,]  5 10

matrix()함수를 이용한 생성

dim()함수를 이용한 차원변경

> mat1
     [,1] [,2]
[1,]    1    2
[2,]    3    4
[3,]    5    6
> dim(mat1) = c(2, 3); mat1
     [,1] [,2] [,3]
[1,]    1    5    4
[2,]    3    2    6

dimnames()사용해 이름정의

> dimnames(mat1)
NULL
> dimnames(mat1) = list(c('r1', 'r2'), c('c1', 'c2', 'c3'))
> mat1
   c1 c2 c3
r1  1  5  4
r2  3  2  6

6. Data Frame

data.frame()함수를 통한 생성

> num = 1:3
> value = c(10, 5, 20)
> data1 = data.frame(num, value)
> data1
  num value
1   1    10
2   2     5
3   3    20

data frame 변수 접근

> data1
  num value
1   1    10
2   2     5
3   3    20
> data1$num
[1] 1 2 3
> data1[c('num', 'value')]
  num value
1   1    10
2   2     5
3   3    20
> data1[1,]
  num value
1   1    10
comments powered by Disqus