티스토리 뷰

R

[R] 모드(mode)와 자료구조

rimo (리모) 2022. 6. 28. 16:05

 

 

[R] R 프로그래밍 기초 (변수와 벡터)

변수부터 자료형, 관련 함수 등 R프로그래밍의 기초적인 내용을 다룹니다. 빅데이터에 대한 관점의 전환 데이터 분석기법은 기술 통계 분석을 기본으로 하며 주어진 문제에 대한 변수 구성 및

munak.tistory.com

 

위 글에 이어 자료형, 관련 함수 등 R의 기초적인 내용을 다룹니다.

 


 

 

 

모드 (mode)

R의 모든 객체에는 어떻게 메모리에 저장되어있는지 가리키는 모드(mode)가 있다. 종류는 아래와 같이 다양하다.

 

1)  숫자형(Numeric) : integer, double, c( ), numeric( ), integer( ) 등

2)  논리형(Logical) : TRUE, FALSE

3)  문자형(Character) : 문자와 문자열

4)  복소수형(Complex) : 실수와 허수로 구성된 복소수

5)  리스트

6)  함수

7)  NA : 데이터에 값이 존재 하지 않을때, 손실된 값, 결측치

8)  NULL : 초기화 되지 않은 값, 정의되지 않은 상태

...

 

 

 

 

 

 

 

 

+ NA값은 다른 값과 더하거나 빼도 NA값이다.

+ is.~를 사용해 해당 자료형인지 확인할 수 있다. (is.na, is.null, is.numeric, is.double  등)

 

 

 

 

 

 

 

 

+ 자동(강제) 형변환/ 명시적 형변환 예시

as.~함수들을 사용해 명시적으로 형변환 할 수 있다. (as.integer, as.logical, as.complex 등)  

 

 

 

 

 

 

 

+ 다음과 같은 문장을 실행하면 결과가 어떻게 될까?

 

 

-->  비교 연산자를 통해 요소들을 검사할 수 있다.

 

 

++  type과 mode의 차이? 

R은 원래 S언어로 만들어졌다. 이후 1988년 C언어로 재작성되었고, S언어식 분류법과 C언어식 분류법이 둘다 생기게 된거라고 한다.

 

 

 

 


 

 

자료구조

 

1) 배열

 

다차원상에서 데이터가 저장되도록 하는 데이터 엔트리이다.

앞서 소개한 1차원의 배열이 벡터이며,  2차원 이상은  행렬이라고 부른다.

선언에는 다양한 방법이 사용된다. 

 

 

 

- dim( )

demension, 차원이라는 뜻으로 행, 열, 차원을 의미한다. 차원을 지정해 벡터를 행렬로 바꿀 수 있다.

 

 

 

 

 

 

 

 

- matrix( )

행렬을 선언할 때 사용한다. ncol로 열의 개수를 지정해 사용한다.

 

 

 

 

 

 

 

- array( )

위와 동일하게 행렬을 선언할 때 사용한다. dim으로 행과 열을 지정해 사용한다.

 

 

 

 

 

 

 

+ 요소의 값이 넘어가면 다시 처음값으로 돌아와 채워진다.

 

 

 

 

 

 

 

 

 

2) 리스트(List)

 

벡터나 행렬을 하나의 리스트에 정리 및 저장할 수 있다.

 

따라서 다양한 자료형의 원소들이 포함될 수 있으며 (배열과의 차이점), 인덱스를 지칭할 때 대괄호 2개를 사용한다.  --> [[ ]]

ex. list[5] : 리스트의 다섯번째 원소를 반환한다.   --> 리스트 반환

       list[[5]] : 리스트의 다섯번째 원소값를 반환한다.

      

 

+ mode를 확인하면 list로 출력된다

 

 

 

- list( )

 

개별적인 데이터 항목들을 바탕으로 리스트를 생성한다.

 

 

 

 

 

+ 리스트도 원소마다 이름을 붙히는것이 가능하다. 이름으로 조회시 '리스트명$이름'을 사용한다.

 

 

 

 

 

 

 

- unlist ( )

 

리스트를 벡터로 만든다. 

 

ex. 평균을 구하기위해 리스트를 벡터로 변환하는 예제

 

 

 

 

 

 

ex. cat 함수는 리스트를 출력할 수 없기 때문에, 벡터로 변환한 뒤 출력하는 예제

 

 

 

 

 

 

- sapply(list name, is.null)

 

리스트에 있는 NULL값 들의 위치를 반환

 

 

ex. 리스트에 있는 NULL 값을 제거하는 예제

 

 

 

 

 

 

3) 데이터 프레임

 

데이터 분석을 수행할 때 자주 사용되는 형식, R에서 외부 파일을 읽어올 때 주로 사용한다.

 

리스트의 경우, 모든 원소의 길이가 같으면서 행과 열의 수 동일하다면, data.frame( ) 함수를 통해 데이터 프레임으로 변환가능하다.(길이가 같은 벡터들를 주어 생성하는 것도 가능!)

따라서 리스트와 동일하게 서로 다른 형태의 자료를 가질 수 있다.

 

 

 

ex. 데이터 프레임을 생성하고 새로운 열을 추가하는 예제

 

 

 

 

 

- subset ( ) 

 

설정하는 조건에 맞는 데이터 프레임(벡터, 행렬도 가능)을 반환한다.

 

 

ex. x열을 삭제하는 예시

 

 

 

 

 

 

- colnames( ), rownames( )

 

행과 열의 이름을 지정한다.  (데이터 프레임은 따로 지정하지 않아도 행과 열의 이름이 지정된다!)

 

 

 

 

 

 

 

 

[참고 자료]

 

 

 

R Language Definition

abs, acos, acosh, asin, asinh, atan, atanh, ceiling, cos, cosh, cospi, cumsum, exp, floor, gamma, lgamma, log, log10, round, signif, sin, sinh, sinpi, tan, tanh, tanpi, trunc +, -, *, /, ^, < , >, <=, >=, !=, ==, %%, %/%, &, |, !

cran.r-project.org

 

 

 

 

감사합니다.

 


 

 

 

2022년 AI분석을 위한 R통계교육의 수업내용을 정리한 글입니다.

 

공부한 내용을 복습/기록하기 위해 작성한 글이므로 내용에 오류가 있을 수 있습니다.

'R' 카테고리의 다른 글

[R] 고급 통계  (0) 2022.06.30
[R] 기초 통계  (0) 2022.06.29
[R] 변수와 벡터  (0) 2022.06.28
[R] 통계의 이해  (0) 2022.06.15
[R] 시작하기 - R, RStudio, jdk 설치 및 설정  (0) 2022.06.15
댓글
«   2024/09   »
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
Total
Today
Yesterday