scidbconnect()
# A basic 1-d array, showing selection of attribute:
df2scidb(iris,nullable=FALSE)
A <- scidb("iris", attribute="Petal_Width")
dim(A)
# A sparse 3-d array example:
scidbremove(A, error=warning)
iquery("store(build_sparse(<val:double>[i=0:9,10,0,j=0:9,5,0,k=0:9,2,0],k,k<99 and (j=1 or j=3 or j=5 or j=7)),A)")
A <- scidb("A")
# Indexing operations return new SciDB arrays:
A[,2:3,5:8]
# But, their data can be materialized into an R array with []:
A[,2:3,5:8] []
# A sparse 2-d array.
scidbremove(c("A"), error=warning)
iquery("store(build_sparse(<val:double>[i=0:9,5,0,j=0:9,5,0],i,i=j),A)")
A <- scidb("A")
# The materialization process from sparse SciDB arrays to R uses a default
# fill-in value globally specified in options("scidb.default.value"). Or, use
# the 'default' argument to change the default:
scidbremove(c("A","B"),error=warning)
iquery("store(build_sparse(<x:double>[i=0:9,5,0,j=0:9,5,0],1,i=(j-1)),A)")
iquery("create array B<x:double>[a(string)=10,5,0,b(string)=10,5,0]")
iquery("redimension_store(apply(A,a,'a'+string(i),b,'b'+string(j)),B)")
B <- scidb("B")
B[]
B[,default=0]
Run the code above in your browser using DataLab