R: Create a connection to a file using a data model.

laf_open {LaF} | R Documentation

## Create a connection to a file using a data model.

### Description

Uses a data model to create a connection to a file. The data model contains all the information needed to open the file (column types, column widths, etc.).

### Usage

    laf_open(model, ...)

### Arguments

`model` | a data model, such as one returned by read_dm or detect_dm_csv.
`...` | additional arguments can be used to overwrite the values specified by the data model. These are listed in the argument documentation for `laf_open_csv` and `laf_open_fwf`, e.g. see `ignore_failed_conversion`.

### Details

Depending on the field ‘type’ `laf_open` uses `laf_open_csv` and `laf_open_fwf` to open the file. The data model should contain all information needed by these routines to open the file.

### Value

Object of type `laf`. Values can be extracted from this object using indexing, and methods such as `read_lines`, `next_block`.

### See Also

See `read_dm` and `detect_dm_csv` for ways of creating data models.

### Examples

    # Create some temporary files
    tmpcsv  <- tempfile(fileext="csv")
    tmp2csv <- tempfile(fileext="csv")
    tmpyaml <- tempfile(fileext="yaml")

    # Generate test data
    ntest <- 10
    column_types <- c("integer", "integer", "double", "string")
    testdata <- data.frame(
        a = 1:ntest,
        b = sample(1:2, ntest, replace=TRUE),
        c = round(runif(ntest), 13),
        d = sample(c("jan", "pier", "tjores", "corneel"), ntest, replace=TRUE)
        )
    # Write test data to csv file
    write.table(testdata, file=tmpcsv, row.names=FALSE, col.names=FALSE, sep=',')

    # Create LaF-object
    laf <- laf_open_csv(tmpcsv, column_types=column_types)

    # Write data model to file
    write_dm(laf, tmpyaml)

    # Read data model and open file
    laf <- laf_open(read_dm(tmpyaml))

    # Write test data to second csv file
    write.table(testdata, file=tmp2csv, row.names=FALSE, col.names=FALSE, sep=',')

    # Read data model and open second file, demonstrating the use of the optional
    # arguments to laf_open
    laf2 <- laf_open(read_dm(tmpyaml), filename=tmp2csv)

    # Cleanup
    file.remove(tmpcsv)
    file.remove(tmp2csv)
    file.remove(tmpyaml)

[Package LaF version 0.8.4 Index]