## Not run:
# # Create a copy of the iris data frame in a 1-d SciDB array named "iris."
# # Note that SciDB attribute names will be changed to conform to SciDB
# # naming convention.
# x <- as.scidb(iris,name="iris")
#
# # Compute averages of each variable grouped by Species
# a <- aggregate(x, by="Species", FUN=mean)
#
# # Aggregation by an auxillary vector (which in this example comes from
# # an R data frame)--also note any valid SciDB aggregation expression may
# # be used:
# y <- as.scidb(data.frame(sample(1:4,150,replace=TRUE)))
# a <- aggregate(x, by=y, FUN="avg(Petal_Width) as apw, min(Sepal_Length) as msl")
#
# # Use the window argument to perform moving window aggregates along coordinate
# # systems. You need to supply a window across all the array dimesions.
# set.seed(1)
# A <- as.scidb(matrix(rnorm(20),nrow=5))
# # Compute a moving window aggregate only along the rows summing two rows at
# # a time (returning result to R). The notation (0,1,0,0) means apply the
# # aggregate over the current row (0) and (1) following row, and just over
# # the current column (that is, a window size of one).
# aggregate(A,FUN="sum(val)",window=c(0,1,0,0))[]
# # The above aggregate is equivalent to, for example:
# apply(a,2,function(x) x+c(x[-1],0))
#
# # Moving windows using the window= argument run along array coordinates.
# # Moving windows using the variable_window= argument run along data values,
# # skipping over empty array cells. The next example illustrates the
# # difference.
#
# # First, create an array with empty values:
# B <- A>0
# # Here is what B looks like:
# B[]
# # Now, run a moving window aggregate along the rows with window just like
# # the above example:
# aggregate(B,FUN="sum(val)",window=c(0,1,0,0))[]
# # And now, a moving window along only the data values down the rows, note
# # that we need to specify the dimension with by=:
# aggregate(B,by="i",FUN="sum(val)",variable_window=c(0,1))[]
# ## End(Not run)
Run the code above in your browser using DataLab