Learn R Programming

PivotalR (version 0.1.18.5)

cbind2-methods: Combine two db.obj Objects by Columns

Description

cbind2 or cbind combine two or multiple '>db.obj objects to form a new db.obj. And as.list does the opposite and expand a db.obj object into a list of db.obj objects with each one of them representing one column of the original db.obj object. as.list is usually used together with Reduce and Map.

Usage

# S4 method for db.obj,db.obj
cbind2(x, y)

# S4 method for db.obj as.list(x, array = FALSE, ...)

Arguments

x, y

The signature of the method. Both arguments are '>db.obj objects.

array

logical, default is FALSE. When it is TRUE, the array columns are also expanded and all the elements are put into the resulting list. Otherwise, an array column is treated as a single item in the result.

In cbind they can be anything that can form new columns together with x. In as.list, it is not implemented yet.

Value

cbind2 or cbind: A '>db.Rquery object, which contains all columns of x and y.

as.list: A list of '>db.Rquery objects, which are the columns of x

See Also

db.array combines columns of a table/view into an array.

array.len measures the length of the array in an array column.

Examples

Run this code
# NOT RUN {
<!-- %% @test .port Database port number -->
<!-- %% @test .dbname Database name -->
## set up the database connection
## Assume that .port is port number and .dbname is the database name
cid <- db.connect(port = .port, dbname = .dbname, verbose = FALSE)

## create a table from the example data.frame "abalone"
delete('abalone', conn.id = cid)
x <- as.db.data.frame(abalone, 'abalone', conn.id = cid, verbose = FALSE)

fit <- madlib.lm(rings ~ . - id - sex, data = x)

## create a db.Rquery object that has two columns
z <- cbind(x$rings, predict(fit, x))

## plot prediction v.s. real value
plot(lookat(z, 100))

## expand the db.obj
unlist(Map(function(x)
               if (col.types(x) == "text")
                   paste(lk(unique(x)), collapse="-", sep="")
               else
                   lk(mean(x))),
           as.list(x))

## sum of all columns (excluding the 2nd column)
Reduce(function(left, right) left + right, as.list(x[-2]))

db.disconnect(cid, verbose = FALSE)
# }

Run the code above in your browser using DataLab