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

 정보

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

  • 작성자     : 박진만

  • 작성일     : 2020-03-26

  • 설   명      :

  • 수정이력 :

 

 내용

[개요]

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

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

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

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

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

 

 

[특징]

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

     

[기능]

  • 데이터형 소개

 

[활용 자료]

  • 없음

 

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

  • 없음

 

[사용법]

  • 소스 코드 예시 참조

 

[사용 OS]

  • Windows 10

 

[사용 언어]

  • R v3.6.2

  • R Studio v1.2.5033

 

 소스 코드

  • 해시 테이블이란 Perl이나 Python 등의 프로그래밍 언어로 볼 수 있는 사전에 해당하는 자료형이며, 기본적으로 R에는 없다. 

  • 그러나 R 벡터 또는 리스트에 개체 이름을 붙이는 것이 가능하고,이를 이용하여 "해시 테이블과 비슷한 것"을 만들 수는 있다.

[벡터에서 해시 테이블을 생성]

  • 가장 쉬운 예로는 R 벡터에 이름을 붙이는 것만으로 "비슷한 것"을 만들 수있다.

  • R 벡터를 이용하기 때문에 하나의 키에 대해 하나의 값만 저장할 수 있다. 또한 모든 값의 형태가 같아야 한다.

aaa2a <- c("A", "C", "D", "E", "F", "G", "H")
names(aaa2a) <- c("ALA", "CYS", "ASP", "GLU", "PHE", "GLY", "HIS")

aaa2a["ALA"]
## ALA
## "A"

aaa2a[c("PHE", "GLY", "CYS")]
## PHE GLY CYS
## "F" "G" "C"

as.character(aaa2a[c("PHE", "GLY", "PHE", "ALA")])
## [1] "F" "G" "F" "A"

 

[리스트에서 해시 테이블을 생성]

  • R의 리스트는 다양한 형태의 객체를 저장할 수있다. 

  • 또한 리스트 내부에서 리스트를 저장할 수도 있다.

  • 따라서 R의 리스트를 이용하여 "비슷한 것"을 만드는 경우 다른 프로그램에서 의미하는 해시와 이차원 딕셔너리 등을 구현할 수 있다.

  • 아래의 예시는 유전자 ID를 부여하고 그에 연관된 GEO ID를 얻을 수있는 해시 테이블을 리스트로 작성한다.

  • 여기서 값을 얻을 때 unlist및 as.character등의 기능을 함께 이용하면 좋다.

GENE2GO <- vector("list", length = 5)
names(GENE2GO) <- c("AT3G04930", "AT1G80200", "AT5G19172", "AT3G04480", "AT3G05130")
GENE2GO[["AT3G04930"]] <- c("GO:0003677", "GO:0005634", "GO:0006355")
GENE2GO[["AT1G80200"]] <- c("GO:0003674", "GO:0008150")
GENE2GO[["AT5G19172"]] <- c("GO:0005576", "GO:0031640", "GO:0050832")
GENE2GO[["AT3G04480"]] <- c("GO:0004521", "GO:0090502")
GENE2GO[["AT3G05130"]] <- c("GO:0003674")

unlist(GENE2GO[c("AT3G04930", "AT3G04480")])
##   AT3G049301   AT3G049302   AT3G049303   AT3G044801   AT3G044802
## "GO:0003677" "GO:0005634" "GO:0006355" "GO:0004521" "GO:0090502"

as.character(unlist(GENE2GO[c("AT3G04930", "AT3G04480")]))
## [1] "GO:0003677" "GO:0005634" "GO:0006355" "GO:0004521" "GO:0090502"

 

[해시 안의 해시]

  • 리스트에서 리스트를 저장하여 "해시 안의 해시"를 R로 구현할 수 있다.

GENE2GO <- vector("list", 2)
names(GENE2GO) <- c("AT3G04930", "AT2G17260") 
GENE2GO[["AT3G04930"]] <- list(
                MF = c("GO:0003677"),
                CC = c("GO:0005634"),
                BP = c("GO:0006355")
              )
GENE2GO[["AT2G17260"]] <- list(
                MF = c("GO:0005217"),
                CC = c("GO:0005576", "GO:0005886"),
                BP = c("GO:0006874", "GO:0010118", "GO:0030003", "GO:0009416")
              )

GENE2GO[["AT2G17260"]][["CC"]]
## [1] "GO:0005576" "GO:0005886"

 

[다음글]

 

[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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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