संदर्भ बनाम कॉपीज़

R में Scalable Data Processing

Simon Urbanek

Member of R-Core, Lead Inventive Scientist, AT&T Labs Research

बिग मैट्रिसेस और मैट्रिसेस - समानताएँ

  • {{1}} का सबसेट लें
  • {{2}} असाइन करें
R में Scalable Data Processing

बिग मैट्रिसेस और मैट्रिसेस - अंतर

  • big.matrix डिस्क पर स्टोर होता है
  • R सेशन्स के बीच बना रहता है
  • R सेशन्स के बीच साझा हो सकता है
R में Scalable Data Processing

R आमतौर पर असाइनमेंट के दौरान कॉपी बनाता है

यह a की एक कॉपी बनाता है और उसे b को असाइन करता है.

a <- 42
b <- a
a
42
b
42
a <- 43
a
43
b
42
R में Scalable Data Processing

R आमतौर पर असाइनमेंट के दौरान कॉपी बनाता है

a <- 42

foo <- function(a){a <- 43 paste("Inside the function a is", a)}
foo(a)
"Inside the function a is 43"
paste("Outside the function a is still", a)
"Outside the function a is still 42"
R में Scalable Data Processing

सभी R ऑब्जेक्ट्स कॉपी नहीं होते

यह फंक्शन ग्लोबल एनवायरनमेंट में a का मान बदलता है

foo <- function(a) {a$val <- 43 
                    paste("Inside the function a is", a$val)}
a <- environment()
a$val <- 42
foo(a)
"Inside the function a is 43"
paste("Outside the function a$val is", a$val)
"Outside the function a$val is 43"
R में Scalable Data Processing

deepcopy()

# x is a big matrix
x <- big.matrix(...)

# x_no_copy and x refer to the same object
x_no_copy <- x

# x_copy and x refer to different objects
x_copy <- deepcopy(x)

R में Scalable Data Processing

रेफ़रेंस व्यवहार

R इम्प्लिसिटली कॉपी नहीं बनाएगा

  • मेमोरी उपयोग कम करें
  • एक्जीक्यूशन समय घटाएँ
R में Scalable Data Processing

सभी R ऑब्जेक्ट्स कॉपी नहीं होते

library(bigmemory)

x <- big.matrix(nrow = 1, ncol = 3, type = "double", 
                init = 0, 
                backingfile = "hello-bigmemory.bin", 
                descriptorfile = "hello-bigmemory.desc")
R में Scalable Data Processing

सभी R ऑब्जेक्ट्स कॉपी नहीं होते

x_no_copy <- x
x[,]
0 0 0
x_no_copy[,]
0 0 0
x[,] <- 1
x[,]
1 1 1
x_no_copy[,]
1 1 1
R में Scalable Data Processing

सभी R ऑब्जेक्ट्स कॉपी नहीं होते

x_copy <- deepcopy(x)
x[,]
1 1 1
x_copy[,]
1 1 1
x[,] <- 2
x[,]
2 2 2
x_copy[,]
1 1 1
R में Scalable Data Processing

अभ्यास करते हैं!

R में Scalable Data Processing

Preparing Video For Download...