스칼라(scalar)란 단일 차원(0차원)의 값을 갖는 데이터 구조이다.
R에서의 기본 데이터 구조는 벡터(vector)임으로 스칼라는 다른 의미로 데이터 길이가 1인 벡터이다.
R에서 데이터 구조별 차원을 살펴보면
스칼라(scalar)는 0차원(길이가 1인 벡터)
벡터(vector)는 1차원
행렬(matrix)은 2차원
배열(array)은 3 이상의 차원이다.
좀 더 이해를 돕기위해 각각 데이터 구조를 점, 선, 사각형, 직육면체에 빗대어 그려보았다.
◎ 스칼라(단일 데이터)의 자료형
타입 | 설명 | 예 |
Logical | 논리형(참, 거짓 : 진릿값) | TRUE, T, FALSE, F |
Integer | 정수 | 10, 15L |
Double | 실수 | 3.14, 1.25e+5 |
Complex | 복소수 | 3+4i, 3-4i |
Character | 문자, 문자열 | 'a', "문자", '스칼라' |
Closure | 함수 | f = function(){return(100)} |
NULL | 미정의 값 | NULL |
R에서 클래스는 변수(객체)가 가지는 속성의 하나이다. 따라서 자료형과 클래스는 같은 값을 가지지 않을 수도 있다. 변수의 클래스를 알아보기 위해서는 mode()을 사용하면 된다. 변수나 값의 자료형을 알아보기 위해서는 typeof() 명령을 사용하면 된다. 또한 변수의 자료구조를 알아보려면 class() 명령을 사용하면 된다.
is.xxxx() 명령은 자료형(xxxx)의 일치 여부에 따라 True or False를 반환하는 함수이다.
※ 클래스, 자료형, 자료구조 더 알아보기
- Logical
> bool = F
> mode(bool); typeof(bool)
[1] "logical"
[1] "logical"
> is.logical(bool)
[1] TRUE
> print(bool)
[1] FALSE
- Integer / Double
> int = 100L
> float = 125.23
> mode(int); typeof(int)
[1] "numeric"
[1] "integer"
> mode(float); typeof(float)
[1] "numeric"
[1] "double"
> is.numeric(int)
[1] TRUE
> is.integer(int)
[1] TRUE
> is.double(int)
[1] FALSE
> print(int)
[1] 100
R에서는 정수들도 실수(double)자료형으로 선언하기 때문에 integer자료형으로 선언하기 위해서는 숫자의 마지막에 L을 붙여줘야 한다.
- Complex
> comp = 3+4i
> mode(comp); typeof(comp)
[1] "complex"
[1] "complex"
> is.complex(comp)
[1] TRUE
> print(comp)
[1] 3+4i
- Character
> string = "대한민국"
> mode(string); typeof(string)
[1] "character"
[1] "character"
> is.character(string)
[1] TRUE
> print(string)
[1] "대한민국"
- Closure
> func = function(){return(100)}
> mode(func); typeof(func)
[1] "function"
[1] "closure"
> print(func())
[1] 100
R에서는 함수도 독자적인 자료형을 가진다. 함수의 자료형은 closure이고, 클래스는 function이다.
- NULL
> null = NULL
> mode(null); typeof(null)
[1] "NULL"
[1] "NULL"
> is.null(null)
[1] TRUE
> print(null)
NULL
※ NA와 NULL
NA는 R에서 결측치를 의미한다. 데이터 입력 실수로 값이 빠지거나 관찰되지 않아 값을 입력하지 못한 경우 등 다양한 이유로 결측치가 생긴다.
NULL은 프로그래밍의 편의를 위해 변수값이 아직 미정인 상태를 표현하는 목적으로 주로 사용된다. 어떤 값을 줘야 할지 정하지 못했을 때 일단 변수에 NULL을 할당한 후 나중에 적절한 값을 할당할 수 있다.
◎ 내장형(built-in) 상수
상수 | 내용 |
pi | 3.141593 |
Inf | infinity |
NaN | Not a Number |
LETTERS | "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O" "P" "Q" "R" "S" "T" "U" "V" "W" "X" "Y" "Z" |
letters | "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r" "s" "t" "u" "v" "w" "x" "y" "z" |
month.abb | "Jan" "Feb" "Mar" "Apr" "May" "Jun" "Jul" "Aug" "Sep" "Oct" "Nov" "Dec" |
month.name | "January" "February" "March" "April" "May" "June" "July" "August" "September" "October" "November" "December" |
<R 스칼라 Scalar - 자료형/내장형상수>
'R > Data Type' 카테고리의 다른 글
R 데이터프레임 DataFrame - 생성과 저장 text/csv/excel파일 (0) | 2020.10.19 |
---|---|
R 배열 Array - 생성/인덱싱 (0) | 2020.10.16 |
R 행렬 Matrix - 생성/연산/인덱싱 (0) | 2020.10.14 |
R 리스트 List - 생성/관련함수/인덱싱 (0) | 2020.08.11 |
R 벡터 Vector - 생성/연산/인덱싱 (0) | 2020.07.28 |
댓글