import_mhealth_csv_chunked {MIMSunit} | R Documentation |
Import large raw multi-channel accelerometer data stored in mHealth Specification in chunks.
Description
import_mhealth_csv_chunked
imports the raw multi-channel accelerometer
data stored in mHealth Specification in chunks.
Usage
import_mhealth_csv_chunked(filepath, chunk_samples = 180000)
Arguments
filepath |
string. The filepath of the input data. |
chunk_samples |
number. The number of samples in each chunk. Default is 180000, which is half hour data for 100 Hz sampling rate. |
Value
list. The list contains two items. The first item is a generator
function that each time it is called, it will
return a dataframe with at most chunk_samples
samples of imported data.
The third item is a close_connection
function which you can call at
any moment to close the file loading.
How is it used in MIMS-unit algorithm?
This function is a File IO function that is used to import data stored in mHealth Specification during algorithm validation.
See Also
Other File I/O functions:
export_to_actilife()
,
import_actigraph_count_csv()
,
import_actigraph_csv_chunked()
,
import_actigraph_csv()
,
import_actigraph_meta()
,
import_activpal3_csv()
,
import_enmo_csv()
,
import_mhealth_csv()
Examples
default_ops = options()
options(digits.secs=3)
# Use the mhealth csv file shipped with the package
filepath = system.file('extdata', 'mhealth.csv', package='MIMSunit')
# Example 1
# Load chunks every 1000 samples
results = import_mhealth_csv_chunked(filepath, chunk_samples=100)
next_chunk = results[[1]]
close_connection = results[[2]]
# Check data as chunks, you can see chunk time is shifting forward at each iteration.
n = 1
repeat {
df = next_chunk()
if (nrow(df) > 0) {
print(paste('chunk', n))
print(paste("df:", df[1, 1], '-', df[nrow(df),1]))
n = n + 1
} else {
break
}
}
# Close connection after reading all the data
close_connection()
# Example 2: close loading early
results = import_mhealth_csv_chunked(filepath, chunk_samples=1000)
next_chunk = results[[1]]
close_connection = results[[2]]
# Check data as chunks, you can see chunk time is shifting forward at each iteration.
n = 1
repeat {
df = next_chunk()
if (nrow(df) > 0) {
print(paste('chunk', n))
print(paste("df:", df[1, 1], '-', df[nrow(df),1]))
n = n + 1
close_connection()
}
else {
break
}
}
# Restore default options
options(default_ops)