Bigmemory 프로젝트

R에서 확장 가능한 데이터 처리

Michael Kane

Assistant Professor, Yale University

bigmemory

bigmemory는 컴퓨터 RAM보다 클 수 있는 대형 행렬을 저장, 조작, 처리하는 데 사용됩니다

R에서 확장 가능한 데이터 처리

big.matrix

  • 생성
  • 검색
  • 부분 선택
  • 요약
R에서 확장 가능한 데이터 처리

"out-of-core"란 무엇인가?

  • R 객체는 RAM에 저장됩니다

  • RAM이 부족해지면

    • 데이터가 디스크로 이동됩니다
    • 프로그램이 느려지거나 중단됩니다

처리에 필요한 데이터만 RAM으로 불러오는 것이 효율적입니다.

R에서 확장 가능한 데이터 처리

big.matrix를 사용하는 경우

  • RAM 크기의 20% 이하
  • 밀집 행렬
R에서 확장 가능한 데이터 처리

bigmemory 개요

  • bigmemory는 디스크에 저장된 행렬을 생성, 저장, 접근, 조작하는 big.matrix 데이터 타입을 구현합니다

  • 데이터는 디스크에 유지되며 필요 시 RAM으로 자동 이동됩니다

R에서 확장 가능한 데이터 처리

bigmemory 개요

big.matrix 객체:

  • 한 번만 가져오면 됩니다
  • "backing" 파일
  • "descriptor" 파일
R에서 확장 가능한 데이터 처리

bigmemory 사용 예시

library(bigmemory)

# Create a new big.matrix object x <- big.matrix(nrow = 1, ncol = 3, type = "double", init = 0, backingfile = "hello_big_matrix.bin", descriptorfile = "hello_big_matrix.desc")
R에서 확장 가능한 데이터 처리

backing 및 descriptor 파일

  • backing 파일: 디스크에 저장된 행렬의 이진 표현
  • descriptor 파일: 행/열 수, 이름 등 메타데이터 저장
R에서 확장 가능한 데이터 처리

bigmemory 사용 예시

# See what's in it
 x[,]
  0    0    0
x
An object of class "big.matrix"
Slot "address":
<pointer: 0x108e2a9a0>
R에서 확장 가능한 데이터 처리

행렬과의 유사점

# Change the value in the first row and column
x[1, 1] <- 3
# Verify the change has been made
x[,]
   3    0    0
R에서 확장 가능한 데이터 처리

연습해 봅시다!

R에서 확장 가능한 데이터 처리

Preparing Video For Download...