read.gdsn {gdsfmt} | R Documentation

## Read data field of a GDS node

### Description

Get data from a GDS node.

### Usage

    read.gdsn(node, start=NULL, count=NULL,
        simplify=c("auto", "none", "force"), .useraw=FALSE, .value=NULL,
        .substitute=NULL, .sparse=TRUE)

### Arguments

`node` | an object of class `gdsn.class`, a GDS node
`start` | a vector of integers, starting from 1 for each dimension component
`count` | a vector of integers, the length of each dimnension. As a special case, the value "-1" indicates that all entries along that dimension should be read, starting from `start`
`simplify` | if `"auto"`, the result is collapsed to be a vector if possible; `"force"`, the result is forced to be a vector
`.useraw` | use R RAW storage mode if integers can be stored in a byte, to reduce memory usage
`.value` | a vector of values to be replaced in the original data array, or NULL for nothing
`.substitute` | a vector of values after replacing, or NULL for nothing; `length(.substitute)` should be one or `length(.value)`; if `length(.substitute)` = `length(.value)`, it is a mapping from `.value` to `.substitute`
`.sparse` | only applicable for the sparse array nodes, if `TRUE` and it is a vector or matrix, return a `Matrix::dgCMatrix` object

### Details

`start`, `count`: the values in data are taken to be those in the array with the leftmost subscript moving fastest.

### Value

Return an array, `list`, or `data.frame`.

### Author(s)

Xiuwen Zheng

### References

http://github.com/zhengxwen/gdsfmt

### See Also

`readex.gdsn`, `append.gdsn`, `write.gdsn`, `add.gdsn`

### Examples

    # cteate a GDS file
    f <- createfn.gds("test.gds")

    add.gdsn(f, "vector", 1:128)
    add.gdsn(f, "list", list(X=1:10, Y=seq(1, 10, 0.25)))
    add.gdsn(f, "data.frame", data.frame(X=1:19, Y=seq(1, 10, 0.5)))
    add.gdsn(f, "matrix", matrix(1:12, ncol=4))

    f

    read.gdsn(index.gdsn(f, "vector"))
    read.gdsn(index.gdsn(f, "list"))
    read.gdsn(index.gdsn(f, "data.frame"))

    # the effects of 'simplify'
    read.gdsn(index.gdsn(f, "matrix"), start=c(2,2), count=c(-1,1))
    # [1] 5 6  <- a vector

    read.gdsn(index.gdsn(f, "matrix"), start=c(2,2), count=c(-1,1),
        simplify="none")
    #      [,1]  <- a matrix
    # [1,]    5
    # [2,]    6

    read.gdsn(index.gdsn(f, "matrix"), start=c(2,2), count=c(-1,3))
    read.gdsn(index.gdsn(f, "matrix"), start=c(2,2), count=c(-1,3),
        .value=c(12,5), .substitute=NA)

    # close the GDS file
    closefn.gds(f)

    # delete the temporary file
    unlink("test.gds", force=TRUE)

[Package gdsfmt version 1.26.1 Index]