R/import_data.R
import_mhealth_csv_chunked.Rd
import_mhealth_csv_chunked
imports the raw multi-channel accelerometer
data stored in mHealth Specification in chunks.
import_mhealth_csv_chunked(filepath, chunk_samples = 180000)
string. The filepath of the input data.
number. The number of samples in each chunk. Default is 180000, which is half hour data for 100 Hz sampling rate.
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.
This function is a File IO function that is used to import data stored in mHealth Specification during algorithm validation.
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()
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
}
}
#> [1] "chunk 1"
#> [1] "df: 2017-03-16 12:25:50.000 - 2017-03-16 12:25:51.237"
#> [1] "chunk 2"
#> [1] "df: 2017-03-16 12:25:51.263 - 2017-03-16 12:25:52.500"
#> [1] "chunk 3"
#> [1] "df: 2017-03-16 12:25:52.525 - 2017-03-16 12:25:53.763"
#> [1] "chunk 4"
#> [1] "df: 2017-03-16 12:25:53.787 - 2017-03-16 12:25:55.025"
#> [1] "chunk 5"
#> [1] "df: 2017-03-16 12:25:55.050 - 2017-03-16 12:25:55.987"
# 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
}
}
#> [1] "chunk 1"
#> [1] "df: 2017-03-16 12:25:50.000 - 2017-03-16 12:25:55.987"
# Restore default options
options(default_ops)