| Title: | Parse Output from 'BabyTime' Application |
|---|---|
| Description: | 'BabyTime' is an application for tracking infant and toddler care activities like sleeping, eating, etc. This package will take the outputted .zip files and parse it into a usable list object with cleaned data. It handles malformed and incomplete data gracefully and is designed to parse one directory at a time. |
| Authors: | Dann Hekman [aut, cre] |
| Maintainer: | Dann Hekman <[email protected]> |
| License: | MIT + file LICENSE |
| Version: | 0.1.0 |
| Built: | 2026-06-02 07:21:57 UTC |
| Source: | https://github.com/dannhek/babytimer |
Sample output from 'read_one_bt_activity_file' and 'clean_bt_list_db'. A "Clean BT List DB" object.
bt_list_dbbt_list_db
## 'bt_list_db' A "Clean BT List DB" object.
Breast Pumping Data (Data Frame; 3 obs. 8 variables)
Diaper Change Data (Data Frame; 1 obs. 5 variables)
Drinking Breast Milk from Bottle Data (Data Frame; 3 obs. 6 variables)
Medications Given Data (Data Frame; 1 obs. 6 variables)
Data on Eating Solids (Data Frame; 1 obs. 6 variables)
Sleep Data. Includes both Night and Daytime Sleep (Data Frame; 5 obs. 5 variables)
Breast Feeding Data (Data Frame; 4 obs. 7 variables)
Synthetic Data used to test this package. Based loosely on author's personal data.
Clean BabyTime List DB File
clean_bt_list_db(list_db)clean_bt_list_db(list_db)
list_db |
output from 'read_one_bt_activity_file' |
a Clean BT List DB object
data_dir <- system.file('extdata', package = 'babyTimeR') baby_dann_db <- read_one_bt_activity_file( infile = file.path(data_dir, 'activity_Dann_202411.txt') ) |> clean_bt_list_db() names(baby_dann_db)data_dir <- system.file('extdata', package = 'babyTimeR') baby_dann_db <- read_one_bt_activity_file( infile = file.path(data_dir, 'activity_Dann_202411.txt') ) |> clean_bt_list_db() names(baby_dann_db)
Generally not needed if you parse all files at once, but can be useful if combining data extracted at multiple times or across multiple directories
combine_clean_bt_list_dbs(la, lb)combine_clean_bt_list_dbs(la, lb)
la |
a Clean BT List DB object |
lb |
another Clean BT List DB object |
a Clean BT List DB object that contains all elements from 'la' and 'lb'
data_dir <- system.file('extdata', package = 'babyTimeR') baby_dann_db_nov <- read_one_bt_activity_file( infile = file.path(data_dir, 'activity_Dann_202411.txt') ) |> clean_bt_list_db() baby_dann_db_dec<- read_one_bt_activity_file( infile = file.path(data_dir, 'activity_Dann_202412.txt') ) |> clean_bt_list_db() baby_dann_db <- combine_clean_bt_list_dbs( baby_dann_db_nov, baby_dann_db_dec )data_dir <- system.file('extdata', package = 'babyTimeR') baby_dann_db_nov <- read_one_bt_activity_file( infile = file.path(data_dir, 'activity_Dann_202411.txt') ) |> clean_bt_list_db() baby_dann_db_dec<- read_one_bt_activity_file( infile = file.path(data_dir, 'activity_Dann_202412.txt') ) |> clean_bt_list_db() baby_dann_db <- combine_clean_bt_list_dbs( baby_dann_db_nov, baby_dann_db_dec )
Only works with with .zip files
process_one_directory(directory, remove_txts = TRUE, verbose = TRUE)process_one_directory(directory, remove_txts = TRUE, verbose = TRUE)
directory |
directory with activity files in it |
remove_txts |
boolean. whether to remove txt files before processing |
verbose |
boolean. print out processing details? |
Clean BT List DB object (and also write it to the 'out' RDS file)
data_dir <- system.file('extdata', package = 'babyTimeR') if (file.exists('parsed_data.RDS')) { baby_dann_db <- readRDS('parsed_data.RDS') } else { baby_dann_db <- process_one_directory( directory = data_dir, remove_txts = FALSE ) }data_dir <- system.file('extdata', package = 'babyTimeR') if (file.exists('parsed_data.RDS')) { baby_dann_db <- readRDS('parsed_data.RDS') } else { baby_dann_db <- process_one_directory( directory = data_dir, remove_txts = FALSE ) }
Read line-by-line and parse into a "database" in a list.
read_one_bt_activity_file(infile, list_db = NULL, verbose = FALSE)read_one_bt_activity_file(infile, list_db = NULL, verbose = FALSE)
infile |
a .zip or .txt file with the format activity_BabyName_yyyymm as the 'BabyTime' app exports data. |
list_db |
a 'Raw BT List DB' object on which to append data. If none exists, this will create a new 'Raw BT List DB' object. |
verbose |
whether or not to write out progress messages. |
a populated 'Raw BT List DB' object
data_dir <- system.file('extdata', package = 'babyTimeR') baby_dann_db <- read_one_bt_activity_file( infile = file.path(data_dir, 'activity_Dann_202411.txt') ) |> clean_bt_list_db() names(baby_dann_db)data_dir <- system.file('extdata', package = 'babyTimeR') baby_dann_db <- read_one_bt_activity_file( infile = file.path(data_dir, 'activity_Dann_202411.txt') ) |> clean_bt_list_db() names(baby_dann_db)