# Sys.setenv("IEEGIO_PKGDOWN" = "TRUE") if(identical(Sys.getenv("IEEGIO_PKGDOWN", unset = ""), "")) { knitr::opts_chunk$set( collapse = TRUE, comment = "#>", eval = FALSE ) } else { knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) cache_dir <- tools::R_user_dir("ieegio", "cache") dir.create(cache_dir, showWarnings = FALSE, recursive = TRUE) cache_dir <- normalizePath(cache_dir, mustWork = TRUE) options("ieegio.extract_path", cache_dir) }
ieegio
supports reading from multiple data formats, such as EDF(+)/BDF(+)
, BrainVision
, BCI2000
, BlackRock NEV/NSx
. Most of these readers have similar interface.
To start, please load ieegio
. This vignette uses sample data. Please feel free to replace the sample path with your own data path.
library(ieegio) edf_path <- ieegio_sample_data("edfPlusD.edf")
Here is a basic example that reads in the sample EDF
data and creates a FileCache
object that stores the signals channel-by-channel for fast access:
edf <- read_edf(edf_path, verbose = FALSE) print(edf)
You can check header, channel table, and annotations via the following methods:
header <- edf$get_header() str(header) chan_tbl <- edf$get_channel_table() print(chan_tbl, nrows = 2, topn = 2) annot <- edf$get_annotations() annot
You can also query a channel by calling the get_channel
method.
# get Channel 1 channel <- edf$get_channel(1) channel
The channel
contains the following elements:
type
: a character indicating the original file type;info
: list of basic information such as Channel
number, Label
, acquisition SampleRate
, and Unit
of the signals;continuous
: a logical value whether the time frames are continuous;time
: a numeric vector of time in seconds for each point;value
: a numeric vector of the signal value, often converted from digital to analog trace.Using such information, it is straightforward to plot the channel data:
plot( x = channel$time, y = channel$value, xlab = "Time", ylab = channel$info$Unit, main = channel$info$Label, type = "p", pch = ".", col = "green", lwd = 2 )
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.