[R] R을 이용한 통계 분석 및 데이터 시각화 : 반복문

 정보

  • 업무명     : R을 이용한 통계 분석 및 데이터 시각화 : 벡터

  • 작성자     : 박진만

  • 작성일     : 2020-03-27

  • 설   명      :

  • 수정이력 :

 

 내용

[개요]

  • R은 통계 분석 및 시각화 등의 기능을 갖춘 프로그래밍 언어 내지 통계 분석 환경입니다. 

  • 통계 분석 기능으로 통계 검정, 선형 회귀 분석, 시계열 데이터 분석, 클러스터링 등을 지원하고 있습니다.

  • 또한 최신 논문에서 발표된 같은 새로운 기술도 R로 구현되는 경우가 많습니다.

  • 특히 시각화 기능으로 히스토그램, 막대 그래프, 선 그래프, 산포도, 나무 모양 그림이나 히트맵 등 기본적인 그래프가 기본으로 지원하고 있습니다.

  • 또한 ggplot2 등의 패키지를 사용하여 더 높은 수준의 그림을 가시화할 수 있습니다.

 

 

[특징]

  • 데이터를 이해하기 위해서 통계 분석 및 데이터 시각화가 요구되며 이 프로그램은 이러한 목적을 달성하기 위한 소프트웨어

     

[기능]

  • 데이터형 소개

 

[활용 자료]

  • 없음

 

[자료 처리 방안 및 활용 분석 기법]

  • 없음

 

[사용법]

  • 소스 코드 예시 참조

 

[사용 OS]

  • Windows 10

 

[사용 언어]

  • R v3.6.2

  • R Studio v1.2.5033

 

 소스 코드

  • 반복문은 for 또는 while로 수행한다.

  • 단, R의 for문장과 while문장의 실행 속도는 매우 느리다. 

  • 따라서 가능한 한 이러한 반복 구문을 피해야 한다. 

  • 때문에 대부분의 반복 구문은 벡터 연산 또는 기존 함수에 의해 대체된다.

  • 예를 들어, 누적합, 또는 팩토리얼 등을 수행할 때 for문장 대신 다음과 같은 기존 함수를 이용하여 빠르게 계산할 수 있다.

함수 기능
prod(1:n) 주어진 벡터의 곱을 계산. 1:n 을 제공함으로써 누적 곱을 계산할 수있다.
factorial(n) 누적곱을 계산.prod(1:n) = factorial(n) = gamma(n+1)
lfactorial(n) factorial 의 log 버전.lfactorial(n) = log(factorial(n))
cumsum(1:n) 입력 벡터의 누적 합계를 계산한다. cumsum(1:n)= 1 + 2 + 3 + ... + n.
cumprod(1:n) 입력 벡터의 누적 제곱을 계산한다. cumprod(1:n)= 1 * 2 * 3 * ... * n.
choose(n, k) n개의 집합에서 k개의 요소를 골라야 때 조합의 경우의 수를 구한다.
combn(n, k) n개의 집합에서 k개의 요소를 골라야 때의 모든 조합을 구한다.

 

[for 문에 의한 반복처리]

  • for문을 이용한 반복은 미리 반복 횟수를 줄일 필요가 있다. 

  • 다음은

     for문을 이용하여 1에서 100까지의 합을 계산하는 예이다.

s = 0
for (i in 1:100) {
  s <- s + i
}

# 벡터 계산
s <- sum(1:100)

 

  • 다음은 1에서 100까지의 정수 중 2의 배수이면서 3의 배수가 아닌 정수를 화면에 출력하는 예이다.

for (i in 1:100) {
  if (i %% 2 == 0 && i %% 3 != 0) {
    print (i)
  }
}

# 벡터 계산
x <- 1:100
x[(x %% 2 == 0) & (i %% 3 != 0)]

 

[while 문에 의한 반복처리]

  • while문장은 어떤 조건식이 주어지면 그 조건식이 거짓이 될 때까지 처리를 계속 반복하는 구문이다.

  • for문장과 달리, 반복의 최대 횟수를 설정하지 않아도된다.

  • 다음은 1에서 100까지의 합계를 while문에서 계산하는 예시이다. 

  • while문에 다음과 같이 조건식을 주는 것으로, for문장과 같은 행동을 할 수있다.

s <- 0
i <- 100
while (i > 0) {
  s <- s + i
  i <- i - 1
}

 

  • 다음은 1,2,3, ..., 순으로 더해 가고 그 합이 처음 1000을 넘었을 때에, 덧셈 처리를 중지하는 예시이다.

s <- 0
i <- 1
while (s < 1000) {
  s <- s + i
  i <- i + 1
}
s
## [1] 1035


# ベクトル処理
x <- 1:100
s <- cumsum(x)
s[1000 < s][1]
## [1] 1035

 

[다음글]

 

[R] R을 이용한 통계 분석 및 데이터 시각화 : 재귀

정보 업무명 : R을 이용한 통계 분석 및 데이터 시각화 : 재귀 작성자 : 박진만 작성일 : 2020-03-27 설 명 : 수정이력 : 내용 [개요] R은 통계 분석 및 시각화 등의 기능을 갖춘 프로그래밍 언어 내지 통계 분석..

shlee1990.tistory.com

 

[이전글]

 

[R] R을 이용한 통계 분석 및 데이터 시각화 : 분기문

정보 업무명 : R을 이용한 통계 분석 및 데이터 시각화 : 분기문 작성자 : 박진만 작성일 : 2020-03-27 설 명 : 수정이력 : 내용 [개요] R은 통계 분석 및 시각화 등의 기능을 갖춘 프로그래밍 언어 내지 통계 분..

shlee1990.tistory.com

 

 

 참고 문헌

[논문]

  • 없음

[보고서]

  • 없음

[URL]

  • 없음

 

 문의사항

[기상학/프로그래밍 언어]

  • sangho.lee.1990@gmail.com

[해양학/천문학/빅데이터]

  • saimang0804@gmail.com

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

본 블로그는 파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음