정보

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

    • 작성자     : 박진만

    • 작성일     : 2020-03-25

    • 설   명      :

    • 수정이력 :

     

     내용

    [개요]

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

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

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

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

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

     

     

    [특징]

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

       

    [기능]

    • 데이터형 소개

     

    [활용 자료]

    • 없음

     

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

    • 없음

     

    [사용법]

    • 소스 코드 예시 참조

     

    [사용 OS]

    • Windows 10

     

    [사용 언어]

    • R v3.6.2

    • R Studio v1.2.5033

     

     소스 코드

    • R의 리스트는 데이터 프레임과 비슷한 역할을 수행하는 데이터 구조이다. 

    • 그러나 데이터 프레임은 열 벡터를 묶어 이름을 붙여 관리하고있는 반면, 리스트는 각 요소를 묶어 이름을 붙여 관리하고있다. 

    • 또한 데이터 프레임은 각 요소 (각 열)가 같은 길이일 필요가있는 반면, 리스트는 각 요소가 같은 길이가 아니라도 상관 없다. 

    • 따라서 리스트는 벡터, 행렬 데이터 프레임, 그리고 리스트를 모두 저장할 수 있으며, 복잡한 데이터 구조를 취할 수 있다.

     

    [리스트 생성]

    • 리스트의 요소 수를 모르는 경우에는 list함수에서 빈 목록을 작성하고 나중에 추가 할 수 있다.

    x <- list()
    
    x <- c(x, list(c(3, 3, 3, 3, 3)))
    x <- c(x, list("I love R"))
    x <- c(x, list(matrix(1:9, ncol = 3)))
    x
    ## [[1]]
    ## [1] 3 3 3 3 3
    ## 
    ## [[2]]
    ## [1] "I love R"
    ## 
    ## [[3]]
    ##      [,1] [,2] [,3]
    ## [1,]    1    4    7
    ## [2,]    2    5    8
    ## [3,]    3    6    9

     

    • 리스트의 요소 수를 미리 알고 있다면, 요소 수를 지정하여 만들 수도 있다. 

    • 예를 들어, 요소가 세 개 목록을 만들려면 아래와 같이 작성한다.

    x <- vector("list", length = 3)
    x
    ## x[[1]]
    ## NULL
    ## 
    ## x[[2]]
    ## NULL
    ## 
    ## x[[3]]
    ## NULL

     

    • 또한 리스트의 요소가 이미 준비되어 있다면 리스트를 직접 대입하여 만들 수 있다.

    x <- list(2 + 3i, c(1:5), array(1:10, dim = c(2, 5))
    x
    ## [[1]]
    ## [1] 2+3i
    ## [[2]]
    ## [1] 1 2 3 4 5
    ## [[3]]
    ##      [,1] [,2] [,3] [,4] [,5]
    ## [1,]    1    3    5    7    9
    ## [2,]    2    4    6    8   10

     

    • 리스트를 중첩하고자 하는 경우 아래와 같이 작성한다.

    x <- list(c(1, 2, 3), array(1:6, dim = c(3, 2))
    y <- list(c(4, 5, 6), x)
    
    y
    ## [[1]]
    ## [1] 4 5 6
    ## 
    ## [[2]]
    ## [[2]][[1]]
    ## [1] 1 2 3
    ## 
    ## [[2]][[2]]
    ##      [,1] [,2]
    ## [1,]    1    4
    ## [2,]    2    5
    ## [3,]    3    6

     

    [리스트 요소 추출]

    • 목록의 요소를 검색 할 때 인덱스에서 몇 번째 요소를 얻을 것인가를 지정할 수 있다. 

    • 예를 들어 아래와 같은 예제에서, [[[2]]]를 입력하는 경우 목록의 두 번째 요소를 얻을 수 있다. 

    x <- list(c(1, 2, 3), array(4:9, dim = c(3, 2)), c(T, F, F, T))
    x
    ## [[1]]
    ## [1] 1 2 3
    ## 
    ## [[2]]
    ##      [,1] [,2]
    ## [1,]    4    7
    ## [2,]    5    8
    ## [3,]    6    9
    ## 
    ## [[3]]
    ## [1]  TRUE FALSE FALSE  TRUE
    ## 
    ## x[[2]]
    ##      [,1] [,2]
    ## [1,]    4    7
    ## [2,]    5    8
    ## [3,]    6    9
    
    x[[2]][2]
    ## [1] 5 8
    
    x[[2]][1]
    ## [1] 5

     

    [리스트의 이름]

    • 리스트에 이름을 붙일 수있다.

    • 이름을 쓰면 인덱스 외에 다른 이름으로 리스트의 요소를 추출할 수 있게된다. 

    • 다른 프로그래밍 언어에서 사용되는 해시와 유사한 기능이라고 볼 수 있다.

    x <- list(
         mat = matrix(0, nrow = 2, ncol = 4),
         vec = c(1, 2, 3, 4),
         arr = array(0, dim = c(2, 1, 1))
    )
    
    x[[2]]
    ## [1] 1 2 3 4
    
    x$vec
    ## [1] 1 2 3 4

     

    • names 함수 목록의 이름을 다시 지정 될 수 있다.

    names(x) <- c("alpha", "beta", "gamma")
    
    x
    ## $alpha
    ##      [,1] [,2] [,3] [,4]
    ## [1,]    0    0    0    0
    ## [2,]    0    0    0    0
    ## 
    ## $beta
    ## [1] 1 2 3 4
    ## 
    ## $gamma
    ## , , 1
    ## 
    ##      [,1]
    ## [1,]    0
    ## [2,]    0
    ## 
    
    x$beta
    ## [1] 1 2 3 4
    
    key <- "beta"
    x[[key]]
    ## [1] 1 2 3 4

     

    [다음글]

     

    [R] R을 이용한 통계 분석 및 데이터 시각화 : 해시 테이블

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

    shlee1990.tistory.com

     

    [이전글]

     

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

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

    shlee1990.tistory.com

     

     

     참고 문헌

    [논문]

    • 없음

    [보고서]

    • 없음

    [URL]

    • 없음

     

     문의사항

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

    • sangho.lee.1990@gmail.com

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

    • saimang0804@gmail.com

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    본 블로그는 파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음
    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기