쭈쌤
쭈쌤 Hello World

[R] R 데이터 타입

크리에이티브 커먼즈 라이선스 ITPAPER(호쌤,쭈쌤)에 의해 작성된 ≪[R] R 데이터 타입≫은(는) 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 4.0 국제 라이선스에 따라 이용할 수 있습니다.
이 라이선스의 범위 이외의 이용허락을 얻기 위해서는 leekh4232@gmail.com으로 문의하십시오.

[R] R 데이터 타입

R에서 다루게 될 여러가지 데이터의 종류들을 파악해 봅시다.

#01. R에서 사용되는 데이터의 종류

  • 변수: 변할 수 있는 수 (일반적인 프로그래밍에서 사용되는 개념)
  • 스칼라: R에서 프로그래밍의 변수를 부르는 용어

datatype

1) 스칼라

숫자형

기본적으로 실수 형식. 정수로 표현하기 위해서는 숫자값 뒤에 L을 표시해야 함.

논리형

참(TRUE), 거짓(FALSE) 중 하나를 갖는 값.

문자열

쌍따옴표나 홑따옴표로 감싼 문장

2) 그룹 형태의 데이터

같은 종류의 값들로 구성

백터

같은 종류의 값들을 c 라는 명령어로 묶어서 나열.

1
c(1, 2, 3, 4, 5)
행렬

백터를 나열한 형태

요인 (factor)

범주를 갖는 값

ex) 성별, 도시이름 등

서로 다른 종류의 값들로 구성

리스트

서로 다른 종류의 값들을 그룹으로 묶어 놓은 형식.

일반적인 프로그래밍 언어에서 말하는 배열의 개념

3) 최종 형태

DataFrame

데이터 분석을 위한 종합적인 자료형.

엑셀 시트를 생각하면 좋다.


#02. 함수

f(x) = x + 1

  • x : 변수 –> 변할 수 있는 수.
    • 데이터 (분석가가 정의)
  • f : 함수 –> 정의된 조건값(x)가 활용되는 수식을 재사용하기 위한 단위.
    • R에서 제공하는 기본 기능.

#03. 스칼라 값의 기본 자료형

아래의 형식으로 변수를 정의할 수 있다. 이름은 각자 편의에 따라 정의하면 된다.

이름 <- 값

1) 문자형(character)

쌍따옴표나 홑따옴표로 감싸진 문장 형태의 데이터

주어진 내용을 출력하는 print() 함수를 사용하여 내용을 출력할 수 있다.

변수 만들고 출력하기

1
2
char <- "Hello World"
print(char)
▶ 출력결과
1
[1] "Hello World"

변수 값의 종류 확인하기

typeof() 함수는 주어진 값의 종류를 반환한다.

1
2
type <- typeof(char)
print(type)
▶ 출력결과
1
[1] "character"

2) 숫자형

실수(double)형태

정수를 대입하더라도 실수 형식으로 식별함

1
2
3
4
5
number1 <- 123
print(number1)

# 함수가 중첩 사용되는 경우 안쪽의 함수부터 실행된다.
print(typeof(number1))
▶ 출력결과
1
2
[1] 123
[1] "double"

소수점을 갖는 실수형 스칼라 값

1
2
3
number2 <- 3.14
print(number2)
print(typeof(number2))
▶ 출력결과
1
2
[1] 3.14
[1] "double"

정수(integer)형 스칼라 값

숫자 뒤에 알파벳 대문자 L을 적용해서 표현한다.

1
2
3
number3 <- 123L
print(number3)
print(typeof(number3))
▶ 출력결과
1
2
[1] 123
[1] "integer"

3) 논리형

참(TRUE), 거짓(FALSE). 영어 대문자만 사용해야 함.

1
2
3
is <- TRUE
print(is)
print(typeof(is))
▶ 출력결과
1
2
[1] TRUE
[1] "logical"

3) 특수한 형태의 값

NULL(결정되지 않은 값)

데이터의 값이 아직 존재하지 않는다는 의미.

1
2
3
sp1 <- NULL
print(sp1)
print(typeof(sp1))
▶ 출력결과
1
2
NULL
[1] "NULL"

NA(손실값,결측값)

Missing value. 결측값, 손실된 값.

1
2
3
sp2 <- NA
print(sp2)
print(typeof(sp2))
▶ 출력결과
1
2
[1] NA
[1] "logical"

NaN(숫자가 아닌 값)

Not a Number - 수학적으로 정의되지 않은 값

1
2
3
sp3 <- NaN
print(sp3)
print(typeof(sp3))
▶ 출력결과
1
2
[1] NaN
[1] "double"

Inf(무한대)

1
2
3
sp4 <- Inf
print(sp4)
print(typeof(sp4))
▶ 출력결과
1
2
[1] Inf
[1] "double"

#04. 스칼라 값에 대한 연산자

산술, 비교, 논리 연산에 사용되는 특수 기호들

1) 산술연산자(사칙연산자)

더하기

1
2
3
4
# 연산을 위해 사용될 스칼라 값 정의
x = 5L
y = 3L
print(x + y)
▶ 출력결과
1
[1] 8

빼기

1
print(x - y)
▶ 출력결과
1
[1] 2

곱하기

1
print(x * y)
▶ 출력결과
1
[1] 15

제곱근(1)

1
print(x ** y)
▶ 출력결과
1
[1] 125

제곱근(2)

1
print(x ^ y)
▶ 출력결과
1
[1] 125

나누기

실수 부분까지 계산한다.

1
print(x / y)
▶ 출력결과
1
[1] 1.666667

나누기

정수 부분의 몫만 취함

1
print(x %/% y)
▶ 출력결과
1
[1] 1

나눗셈의 나머지만 구하기

1
print(x %% y)
▶ 출력결과
1
[1] 2

2) 비교연산자

연산 결과가 참(TRUE) 혹은 거짓(FALSE) 형태로 나타남

같다(==), 다르다(!=)

1
2
3
4
5
# 연산을 위해 사용될 스칼라 값 정의
x <- 5L
y <- 3L
print(x == y)   # 같은지 여부를 비교
print(x != y)   # 다름을 비교
▶ 출력결과
1
2
[1] FALSE
[1] TRUE

크기 비교

1
2
3
4
print(x < y)    # 미만
print(x <= y)   # 이하
print(x > y)    # 초과
print(x >= y)   # 이상
▶ 출력결과
1
2
3
4
[1] FALSE
[1] FALSE
[1] TRUE
[1] TRUE

3) 논리연산자

AND (&)

모든 명제가 참인 경우만 결과가 참

1
2
3
4
print(TRUE & TRUE)
print(TRUE & FALSE)
print(FALSE & TRUE)
print(FALSE & FALSE)
▶ 출력결과
1
2
3
4
[1] TRUE
[1] FALSE
[1] FALSE
[1] FALSE

비교식과 함께 사용하기

비교식의 결과는 그 자체가 참, 거짓을 의미하므로 비교식끼리 논리연산을 수행할 수 있다.

1
2
3
4
print(5 > 3 & 10 > 7)    # TRUE & TRUE
print(5 < 3 & 10 > 7)    # FALSE & TRUE
print(5 > 3 & 10 < 7)    # TRUE & FALSE
print(5 < 3 & 10 < 7)    # FALSE & FALSE
▶ 출력결과
1
2
3
4
[1] TRUE
[1] FALSE
[1] FALSE
[1] FALSE

OR (|)

하나라도 참인 명제가 있다면 결과가 참

1
2
3
4
print(TRUE | TRUE)
print(TRUE | FALSE)
print(FALSE | TRUE)
print(FALSE | FALSE)
▶ 출력결과
1
2
3
4
[1] TRUE
[1] TRUE
[1] TRUE
[1] FALSE
1
2
3
4
print(5 > 3 | 10 > 7)    # TRUE | TRUE
print(5 < 3 | 10 > 7)    # FALSE | TRUE
print(5 > 3 | 10 < 7)    # TRUE | FALSE
print(5 < 3 | 10 < 7)    # FALSE | FALSE
▶ 출력결과
1
2
3
4
[1] TRUE
[1] TRUE
[1] TRUE
[1] FALSE

논리값 부정 (!) –> NOT

1
2
3
foo <- TRUE
bar <- !foo
print(bar)
▶ 출력결과
1
[1] FALSE
Rating:

크리에이티브 커먼즈 라이선스 ITPAPER(호쌤,쭈쌤)에 의해 작성된 ≪[R] R 데이터 타입≫은(는) 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 4.0 국제 라이선스에 따라 이용할 수 있습니다.
이 라이선스의 범위 이외의 이용허락을 얻기 위해서는 leekh4232@gmail.com으로 문의하십시오.

comments powered by Disqus