knitr::opts_chunk$set(
collapse = TRUE,
comment = "",
fig.path = "man/figures/README-",
out.width = "100%"
)
The goal of nsrr is to allow users to access data from the National Sleep Research Resource ('NSRR') (https://sleepdata.org/) through an R
interface.
Why R
? Many packages in R
can read and process accelerometry, such as the GGIR
, ActivityIndex
, and accelerometry
; other packages such as edfReader
can read in EDF data for polysomnography data. Also, the xml2
package can easily read in XML annotations into R
. We believe the interplay with these packages, amongst others, allow for a flexible framework to download, process, and visualize data. The nsrr
package is simply the entry point into navigating the files available and downloading the data.
You can install the released version of nsrr from CRAN with:
install.packages("nsrr")
To retrieve your NSRR token, go to https://sleepdata.org/dashboard, and sign in. This token will allow you access to any data sets you have requested access to. If you do not have access, then it will allow you to download files that are publicly available.
Set the token by adding this to your ~/.Renviron
file:
NSRR_TOKEN="YOUR TOKEN GOES HERE"
The token is accessible via token = Sys.getenv("NSRR_TOKEN")
. Each nsrr
function also has the argument token
to pass through if you do not wish to set it.
To determine if you are authenticated, you can use:
library(nsrr)
nsrr_auth()
Here is how you can access the NSRR datasets list:
library(nsrr)
df = nsrr_datasets()
DT::datatable(df)
Here we first get a list of the files in the datasets
sub-directory from the shhs
data set:
df = nsrr_dataset_files("shhs", path = "datasets")
head(df)
We can then download the CHANGELOG.md
file as it's publicly accessible.
url = nsrr_download_url("shhs", path = "datasets/CHANGELOG.md")
# print URL
dl = nsrr_download_file("shhs", path = "datasets/CHANGELOG.md")
dl$outfile
cat(head(readLines(dl$outfile)), sep = "\n")
To list all the files, recursively, you would run:
nsrr_all_dataset_files("shhs")
but it may take some time.
The edfReader
can read in EDF fields for polysomnography data. Work in Progress - need access to EDF data.
files = nsrr_dataset_files("shhs", path= "polysomnography/edfs/shhs1")
dl = nsrr_download_file("shhs", path = "polysomnography/edfs/shhs1/shhs1-200001.edf")