From 6a79fbe1e8d48e971b52d4975a632e5c69206fc0 Mon Sep 17 00:00:00 2001 From: JulioV Date: Thu, 5 Dec 2019 16:24:05 -0500 Subject: [PATCH] Fix bug in iOS battery (different status compared to Android) --- rules/features.snakefile | 2 +- src/data/unify_ios_android.R | 18 ++++++++++++++---- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/rules/features.snakefile b/rules/features.snakefile index 3ae37d21..80d0427a 100644 --- a/rules/features.snakefile +++ b/rules/features.snakefile @@ -24,7 +24,7 @@ rule call_metrics: rule battery_deltas: input: - "data/raw/{pid}/battery_with_datetime.csv" + "data/raw/{pid}/battery_with_datetime_unified.csv" output: "data/processed/{pid}/battery_deltas.csv" script: diff --git a/src/data/unify_ios_android.R b/src/data/unify_ios_android.R index 7136421f..7abb02e8 100644 --- a/src/data/unify_ios_android.R +++ b/src/data/unify_ios_android.R @@ -2,6 +2,12 @@ source("packrat/init.R") library(dplyr) +unify_ios_battery <- function(ios_battery){ + ios_battery <- ios_battery %>% + mutate(battery_status = replace(battery_status, battery_status == 3, 5), + battery_status = replace(battery_status, battery_status == 1, 3)) +} + unify_ios_calls <- function(ios_calls){ # Android’s call types 1=incoming, 2=outgoing, 3=missed # iOS' call status 1=incoming, 2=connected, 3=dialing, 4=disconnected @@ -61,10 +67,14 @@ sensor <- snakemake@params[["sensor"]] platform <- readLines(participant_info, n=2)[[2]] if(sensor == "calls"){ - if(platform == "android"){ - write.csv(sensor_data, snakemake@output[[1]], row.names = FALSE) - } else if(platform == "ios"){ + if(platform == "ios"){ sensor_data = unify_ios_calls(sensor_data) - write.csv(sensor_data, snakemake@output[[1]], row.names = FALSE) } + # android calls remain unchanged +} else if(sensor == "battery"){ + if(platform == "ios"){ + sensor_data = unify_ios_battery(sensor_data) + } + # android battery remains unchanged } +write.csv(sensor_data, snakemake@output[[1]], row.names = FALSE)