Skip to contents

Fast conversion of data files

convertr is an R package that provides a simple interface to high-performance command-line tools for converting data files between CSV, EDF, Feather, and Parquet formats.

Supported conversions:

  • CSV → EDF
  • CSV → Feather
  • CSV → Parquet
  • EDF → CSV
  • EDF → Feather
  • EDF → Parquet

Installation

You can install the development version of convertr like so:

install.packages("remotes")
remotes::install_url(
  "https://github.com/NIATS-UFU/convertr/releases/download/v0.1.0/convertr_0.1.0.tar.gz"
)

Quickstart

To convert files into different formats, you will first need to install the command-line tool:

CSV conversions

CSV → EDF

csv2edf(
  input = "./data/signal.csv",
  output = "./data/signal.edf"
)

Adding EDF header information:

csv2edf(
  input = "./data/signal.csv",
  output = "./data/signal.edf",
  patient = "Tony Stark",
  recording = "EMG"
)

CSV → Feather

csv2feather(
  input = "./data/signal.csv",
  output = "./data/signal.feather"
)

Using other compression method:

csv2feather(
  input = "./data/signal.csv",
  output = "./data/signal.feather",
  compression = "zstd",
  compression_level = 5
)

CSV → Parquet

csv2parquet(
  input = "./data/signal.csv",
  output = "./data/signal.parquet",
  compression = "snappy"
)

Available compression:

snappy
zstd
uncompressed

EDF conversions

EDF → CSV

edf2csv(
  input = "./data/signal.edf",
  output = "./data/signal.csv"
)

EDF → Feather

edf2feather(
  input = "./data/signal.edf",
  output = "./data/signal.feather"
)

EDF → Parquet

edf2parquet(
  input = "./data/signal.edf",
  output = "./data/signal.parquet",
  compression = "zstd"
)

Folder conversion

Convert all EDF files inside a folder:

edf_folder_convert(
  folder = "./data/edf_files",
  output_format = "parquet"
)

Supported output formats:

csv
feather
parquet

Alignment options

EDF conversion supports:

highest-rate
union

Example:

edf2csv(
  "signal.edf",
  "signal.csv",
  align = "union"
)