inst/doc/ExternalFunction.R

## ----setup, include=FALSE-----------------------------------------------------
knitr::opts_chunk$set(
  echo = TRUE,
  python.reticulate = FALSE
)

## ----eval=FALSE---------------------------------------------------------------
# calculateCounts = function(data=c(), parameters=c()) {
#   # data: 3 column matrix with acc data
#   # parameters: the sample rate of data
#   library("activityCounts")
#   if (ncol(data) == 4) data = data[,2:4]
#   mycounts = counts(data = data, hertz = parameters,
#                     x_axis = 1, y_axis = 2, z_axis = 3,
#                     start_time = Sys.time())
#   mycounts = mycounts[,2:4] #Note: do not provide timestamps to GGIR
#   return(mycounts)
# }

## ----eval=FALSE---------------------------------------------------------------
# source("~/calculateCounts.R")
# myfun =  list(FUN = calculateCounts,
#               parameters = 30,
#               expected_sample_rate = 30,
#               expected_unit = "g",
#               colnames = c("countsX","countsY","countsZ"),
#               outputres = 1,
#               minlength = 1,
#               outputtype = "numeric",
#               aggfunction = sum,
#               timestamp = F,
#               reporttype = c("scalar", "scalar", "scalar"))

## ----eval=FALSE---------------------------------------------------------------
# library(GGIR)
# GGIR(datadir = "~/myaccelerometerdata",
#              outputdir = "~/myresults",
#              mode = 1:2,
#              epochvalues2csv = TRUE,
#              do.report = 2,
#              myfun = myfun) #<= this is where object myfun is provided to GGIR

## ----eval=FALSE---------------------------------------------------------------
# dominant_frequency = function(data=c(), parameters=c()) {
#   # data: 3 column matrix with acc data
#   # parameters: the sample rate of data
#   source_python("dominant_frequency.py")
#   sf=parameters
#   N = nrow(data)
#   ws = 5 # windowsize
#   if (ncol(data) == 4) data= data[,2:4]
#   data = data.frame(t = floor(seq(0,(N - 1)/sf, by = 1/sf)/ws),
#                     x = data[,1], y = data[,2], z = data[,3])
#   df = aggregate(data, by = list(data$t),
#                  FUN=function(x) {return(dominant_frequency(x, sf))})
#   df = df[, -c(1:2)]
#   return(df)
# }
# }

## ----eval=FALSE---------------------------------------------------------------
#   library("reticulate")
#   use_virtualenv("~/myvenv", required = TRUE) # Local Python environment
#   py_install("numpy", pip = TRUE)
# 

## ----eval=FALSE---------------------------------------------------------------
# source("~/dominant_frequency.R")
# myfun =  list(FUN = dominant_frequency,
#               parameters = 30,
#               expected_sample_rate = 30,
#               expected_unit = "g",
#               colnames = c("domfreqX", "domfreqY", "domfreqZ"),
#               minlength = 5,
#               outputres = 5,
#               outputtype = "numeric",
#               aggfunction = median
#               timestamp = F,
#               reporttype = c("scalar", "scalar", "scalar"))

## ----eval=FALSE---------------------------------------------------------------
# library(GGIR)
# GGIR(datadir = "~/myaccelerometerdata",
#              outputdir = "~/myresults",
#              mode = 1:2,
#              epochvalues2csv = TRUE,
#              do.report = 2,
#              myfun = myfun,
#              do.parallel = FALSE)

Try the GGIR package in your browser

Any scripts or data that you put into this service are public.

GGIR documentation built on Jan. 27, 2026, 5:06 p.m.