data-raw/wlehar.R

library(tidyverse)

wle_file <- "data-raw/WearableComputing_weight_lifting_exercises_biceps_curl_variations.csv"
jhu_training_file <- "data-raw/pml-training.csv"
jhu_testing_file <- "data-raw/pml-testing.csv"

wle_col_spec <- cols(
  user_name = col_character(),
  raw_timestamp_part_1 = col_integer(),
  raw_timestamp_part_2 = col_integer(),
  cvtd_timestamp = col_character(),
  new_window = col_character(),
  num_window = col_integer(),
  roll_belt = col_double(),
  pitch_belt = col_double(),
  yaw_belt = col_double(),
  total_accel_belt = col_integer(),
  kurtosis_roll_belt = col_double(),
  kurtosis_picth_belt = col_double(),
  kurtosis_yaw_belt = col_character(),
  skewness_roll_belt = col_double(),
  skewness_roll_belt_1 = col_double(),
  skewness_yaw_belt = col_character(),
  max_roll_belt = col_double(),
  max_picth_belt = col_double(),
  max_yaw_belt = col_double(),
  min_roll_belt = col_double(),
  min_pitch_belt = col_double(),
  min_yaw_belt = col_double(),
  amplitude_roll_belt = col_double(),
  amplitude_pitch_belt = col_double(),
  amplitude_yaw_belt = col_double(),
  var_total_accel_belt = col_double(),
  avg_roll_belt = col_double(),
  stddev_roll_belt = col_double(),
  var_roll_belt = col_double(),
  avg_pitch_belt = col_double(),
  stddev_pitch_belt = col_double(),
  var_pitch_belt = col_double(),
  avg_yaw_belt = col_double(),
  stddev_yaw_belt = col_double(),
  var_yaw_belt = col_double(),
  gyros_belt_x = col_double(),
  gyros_belt_y = col_double(),
  gyros_belt_z = col_double(),
  accel_belt_x = col_integer(),
  accel_belt_y = col_integer(),
  accel_belt_z = col_integer(),
  magnet_belt_x = col_integer(),
  magnet_belt_y = col_integer(),
  magnet_belt_z = col_integer(),
  roll_arm = col_double(),
  pitch_arm = col_double(),
  yaw_arm = col_double(),
  total_accel_arm = col_integer(),
  var_accel_arm = col_double(),
  avg_roll_arm = col_double(),
  stddev_roll_arm = col_double(),
  var_roll_arm = col_double(),
  avg_pitch_arm = col_double(),
  stddev_pitch_arm = col_double(),
  var_pitch_arm = col_double(),
  avg_yaw_arm = col_double(),
  stddev_yaw_arm = col_double(),
  var_yaw_arm = col_double(),
  gyros_arm_x = col_double(),
  gyros_arm_y = col_double(),
  gyros_arm_z = col_double(),
  accel_arm_x = col_integer(),
  accel_arm_y = col_integer(),
  accel_arm_z = col_integer(),
  magnet_arm_x = col_integer(),
  magnet_arm_y = col_integer(),
  magnet_arm_z = col_integer(),
  kurtosis_roll_arm = col_double(),
  kurtosis_picth_arm = col_double(),
  kurtosis_yaw_arm = col_double(),
  skewness_roll_arm = col_double(),
  skewness_pitch_arm = col_double(),
  skewness_yaw_arm = col_double(),
  max_roll_arm = col_double(),
  max_picth_arm = col_double(),
  max_yaw_arm = col_double(),
  min_roll_arm = col_double(),
  min_pitch_arm = col_double(),
  min_yaw_arm = col_double(),
  amplitude_roll_arm = col_double(),
  amplitude_pitch_arm = col_double(),
  amplitude_yaw_arm = col_double(),
  roll_dumbbell = col_double(),
  pitch_dumbbell = col_double(),
  yaw_dumbbell = col_double(),
  kurtosis_roll_dumbbell = col_double(),
  kurtosis_picth_dumbbell = col_double(),
  kurtosis_yaw_dumbbell = col_character(),
  skewness_roll_dumbbell = col_double(),
  skewness_pitch_dumbbell = col_double(),
  skewness_yaw_dumbbell = col_character(),
  max_roll_dumbbell = col_double(),
  max_picth_dumbbell = col_double(),
  max_yaw_dumbbell = col_double(),
  min_roll_dumbbell = col_double(),
  min_pitch_dumbbell = col_double(),
  min_yaw_dumbbell = col_double(),
  amplitude_roll_dumbbell = col_double(),
  amplitude_pitch_dumbbell = col_double(),
  amplitude_yaw_dumbbell = col_double(),
  total_accel_dumbbell = col_integer(),
  var_accel_dumbbell = col_double(),
  avg_roll_dumbbell = col_double(),
  stddev_roll_dumbbell = col_double(),
  var_roll_dumbbell = col_double(),
  avg_pitch_dumbbell = col_double(),
  stddev_pitch_dumbbell = col_double(),
  var_pitch_dumbbell = col_double(),
  avg_yaw_dumbbell = col_double(),
  stddev_yaw_dumbbell = col_double(),
  var_yaw_dumbbell = col_double(),
  gyros_dumbbell_x = col_double(),
  gyros_dumbbell_y = col_double(),
  gyros_dumbbell_z = col_double(),
  accel_dumbbell_x = col_integer(),
  accel_dumbbell_y = col_integer(),
  accel_dumbbell_z = col_integer(),
  magnet_dumbbell_x = col_double(),
  magnet_dumbbell_y = col_double(),
  magnet_dumbbell_z = col_double(),
  roll_forearm = col_double(),
  pitch_forearm = col_double(),
  yaw_forearm = col_double(),
  kurtosis_roll_forearm = col_double(),
  kurtosis_picth_forearm = col_double(),
  kurtosis_yaw_forearm = col_character(),
  skewness_roll_forearm = col_double(),
  skewness_pitch_forearm = col_double(),
  skewness_yaw_forearm = col_character(),
  max_roll_forearm = col_double(),
  max_picth_forearm = col_double(),
  max_yaw_forearm = col_double(),
  min_roll_forearm = col_double(),
  min_pitch_forearm = col_double(),
  min_yaw_forearm = col_double(),
  amplitude_roll_forearm = col_double(),
  amplitude_pitch_forearm = col_double(),
  amplitude_yaw_forearm = col_double(),
  total_accel_forearm = col_integer(),
  var_accel_forearm = col_double(),
  avg_roll_forearm = col_double(),
  stddev_roll_forearm = col_double(),
  var_roll_forearm = col_double(),
  avg_pitch_forearm = col_double(),
  stddev_pitch_forearm = col_double(),
  var_pitch_forearm = col_double(),
  avg_yaw_forearm = col_double(),
  stddev_yaw_forearm = col_double(),
  var_yaw_forearm = col_double(),
  gyros_forearm_x = col_double(),
  gyros_forearm_y = col_double(),
  gyros_forearm_z = col_double(),
  accel_forearm_x = col_double(),
  accel_forearm_y = col_double(),
  accel_forearm_z = col_double(),
  magnet_forearm_x = col_double(),
  magnet_forearm_y = col_double(),
  magnet_forearm_z = col_double(),
  classe = col_character()
)

jhu_training_col_spec <- cols(
  user_name = col_character(),
  raw_timestamp_part_1 = col_integer(),
  raw_timestamp_part_2 = col_integer(),
  cvtd_timestamp = col_character(),
  new_window = col_character(),
  num_window = col_integer(),
  roll_belt = col_double(),
  pitch_belt = col_double(),
  yaw_belt = col_double(),
  total_accel_belt = col_integer(),
  kurtosis_roll_belt = col_double(),
  kurtosis_picth_belt = col_double(),
  kurtosis_yaw_belt = col_character(),
  skewness_roll_belt = col_double(),
  skewness_roll_belt.1 = col_double(),
  skewness_yaw_belt = col_character(),
  max_roll_belt = col_double(),
  max_picth_belt = col_double(),
  max_yaw_belt = col_double(),
  min_roll_belt = col_double(),
  min_pitch_belt = col_double(),
  min_yaw_belt = col_double(),
  amplitude_roll_belt = col_double(),
  amplitude_pitch_belt = col_double(),
  amplitude_yaw_belt = col_double(),
  var_total_accel_belt = col_double(),
  avg_roll_belt = col_double(),
  stddev_roll_belt = col_double(),
  var_roll_belt = col_double(),
  avg_pitch_belt = col_double(),
  stddev_pitch_belt = col_double(),
  var_pitch_belt = col_double(),
  avg_yaw_belt = col_double(),
  stddev_yaw_belt = col_double(),
  var_yaw_belt = col_double(),
  gyros_belt_x = col_double(),
  gyros_belt_y = col_double(),
  gyros_belt_z = col_double(),
  accel_belt_x = col_integer(),
  accel_belt_y = col_integer(),
  accel_belt_z = col_integer(),
  magnet_belt_x = col_integer(),
  magnet_belt_y = col_integer(),
  magnet_belt_z = col_integer(),
  roll_arm = col_double(),
  pitch_arm = col_double(),
  yaw_arm = col_double(),
  total_accel_arm = col_integer(),
  var_accel_arm = col_double(),
  avg_roll_arm = col_double(),
  stddev_roll_arm = col_double(),
  var_roll_arm = col_double(),
  avg_pitch_arm = col_double(),
  stddev_pitch_arm = col_double(),
  var_pitch_arm = col_double(),
  avg_yaw_arm = col_double(),
  stddev_yaw_arm = col_double(),
  var_yaw_arm = col_double(),
  gyros_arm_x = col_double(),
  gyros_arm_y = col_double(),
  gyros_arm_z = col_double(),
  accel_arm_x = col_integer(),
  accel_arm_y = col_integer(),
  accel_arm_z = col_integer(),
  magnet_arm_x = col_integer(),
  magnet_arm_y = col_integer(),
  magnet_arm_z = col_integer(),
  kurtosis_roll_arm = col_double(),
  kurtosis_picth_arm = col_double(),
  kurtosis_yaw_arm = col_double(),
  skewness_roll_arm = col_double(),
  skewness_pitch_arm = col_double(),
  skewness_yaw_arm = col_double(),
  max_roll_arm = col_double(),
  max_picth_arm = col_double(),
  max_yaw_arm = col_double(),
  min_roll_arm = col_double(),
  min_pitch_arm = col_double(),
  min_yaw_arm = col_double(),
  amplitude_roll_arm = col_double(),
  amplitude_pitch_arm = col_double(),
  amplitude_yaw_arm = col_double(),
  roll_dumbbell = col_double(),
  pitch_dumbbell = col_double(),
  yaw_dumbbell = col_double(),
  kurtosis_roll_dumbbell = col_double(),
  kurtosis_picth_dumbbell = col_double(),
  kurtosis_yaw_dumbbell = col_character(),
  skewness_roll_dumbbell = col_double(),
  skewness_pitch_dumbbell = col_double(),
  skewness_yaw_dumbbell = col_character(),
  max_roll_dumbbell = col_double(),
  max_picth_dumbbell = col_double(),
  max_yaw_dumbbell = col_double(),
  min_roll_dumbbell = col_double(),
  min_pitch_dumbbell = col_double(),
  min_yaw_dumbbell = col_double(),
  amplitude_roll_dumbbell = col_double(),
  amplitude_pitch_dumbbell = col_double(),
  amplitude_yaw_dumbbell = col_double(),
  total_accel_dumbbell = col_integer(),
  var_accel_dumbbell = col_double(),
  avg_roll_dumbbell = col_double(),
  stddev_roll_dumbbell = col_double(),
  var_roll_dumbbell = col_double(),
  avg_pitch_dumbbell = col_double(),
  stddev_pitch_dumbbell = col_double(),
  var_pitch_dumbbell = col_double(),
  avg_yaw_dumbbell = col_double(),
  stddev_yaw_dumbbell = col_double(),
  var_yaw_dumbbell = col_double(),
  gyros_dumbbell_x = col_double(),
  gyros_dumbbell_y = col_double(),
  gyros_dumbbell_z = col_double(),
  accel_dumbbell_x = col_integer(),
  accel_dumbbell_y = col_integer(),
  accel_dumbbell_z = col_integer(),
  magnet_dumbbell_x = col_double(),
  magnet_dumbbell_y = col_double(),
  magnet_dumbbell_z = col_double(),
  roll_forearm = col_double(),
  pitch_forearm = col_double(),
  yaw_forearm = col_double(),
  kurtosis_roll_forearm = col_double(),
  kurtosis_picth_forearm = col_double(),
  kurtosis_yaw_forearm = col_character(),
  skewness_roll_forearm = col_double(),
  skewness_pitch_forearm = col_double(),
  skewness_yaw_forearm = col_character(),
  max_roll_forearm = col_double(),
  max_picth_forearm = col_double(),
  max_yaw_forearm = col_double(),
  min_roll_forearm = col_double(),
  min_pitch_forearm = col_double(),
  min_yaw_forearm = col_double(),
  amplitude_roll_forearm = col_double(),
  amplitude_pitch_forearm = col_double(),
  amplitude_yaw_forearm = col_double(),
  total_accel_forearm = col_integer(),
  var_accel_forearm = col_double(),
  avg_roll_forearm = col_double(),
  stddev_roll_forearm = col_double(),
  var_roll_forearm = col_double(),
  avg_pitch_forearm = col_double(),
  stddev_pitch_forearm = col_double(),
  var_pitch_forearm = col_double(),
  avg_yaw_forearm = col_double(),
  stddev_yaw_forearm = col_double(),
  var_yaw_forearm = col_double(),
  gyros_forearm_x = col_double(),
  gyros_forearm_y = col_double(),
  gyros_forearm_z = col_double(),
  accel_forearm_x = col_double(),
  accel_forearm_y = col_double(),
  accel_forearm_z = col_double(),
  magnet_forearm_x = col_double(),
  magnet_forearm_y = col_double(),
  magnet_forearm_z = col_double(),
  classe = col_character()
)

jhu_testing_col_spec <- cols(
  user_name = col_character(),
  raw_timestamp_part_1 = col_integer(),
  raw_timestamp_part_2 = col_integer(),
  cvtd_timestamp = col_character(),
  new_window = col_character(),
  num_window = col_integer(),
  roll_belt = col_double(),
  pitch_belt = col_double(),
  yaw_belt = col_double(),
  total_accel_belt = col_integer(),
  kurtosis_roll_belt = col_double(),
  kurtosis_picth_belt = col_double(),
  kurtosis_yaw_belt = col_character(),
  skewness_roll_belt = col_double(),
  skewness_roll_belt.1 = col_double(),
  skewness_yaw_belt = col_character(),
  max_roll_belt = col_double(),
  max_picth_belt = col_double(),
  max_yaw_belt = col_double(),
  min_roll_belt = col_double(),
  min_pitch_belt = col_double(),
  min_yaw_belt = col_double(),
  amplitude_roll_belt = col_double(),
  amplitude_pitch_belt = col_double(),
  amplitude_yaw_belt = col_double(),
  var_total_accel_belt = col_double(),
  avg_roll_belt = col_double(),
  stddev_roll_belt = col_double(),
  var_roll_belt = col_double(),
  avg_pitch_belt = col_double(),
  stddev_pitch_belt = col_double(),
  var_pitch_belt = col_double(),
  avg_yaw_belt = col_double(),
  stddev_yaw_belt = col_double(),
  var_yaw_belt = col_double(),
  gyros_belt_x = col_double(),
  gyros_belt_y = col_double(),
  gyros_belt_z = col_double(),
  accel_belt_x = col_integer(),
  accel_belt_y = col_integer(),
  accel_belt_z = col_integer(),
  magnet_belt_x = col_integer(),
  magnet_belt_y = col_integer(),
  magnet_belt_z = col_integer(),
  roll_arm = col_double(),
  pitch_arm = col_double(),
  yaw_arm = col_double(),
  total_accel_arm = col_integer(),
  var_accel_arm = col_double(),
  avg_roll_arm = col_double(),
  stddev_roll_arm = col_double(),
  var_roll_arm = col_double(),
  avg_pitch_arm = col_double(),
  stddev_pitch_arm = col_double(),
  var_pitch_arm = col_double(),
  avg_yaw_arm = col_double(),
  stddev_yaw_arm = col_double(),
  var_yaw_arm = col_double(),
  gyros_arm_x = col_double(),
  gyros_arm_y = col_double(),
  gyros_arm_z = col_double(),
  accel_arm_x = col_integer(),
  accel_arm_y = col_integer(),
  accel_arm_z = col_integer(),
  magnet_arm_x = col_integer(),
  magnet_arm_y = col_integer(),
  magnet_arm_z = col_integer(),
  kurtosis_roll_arm = col_double(),
  kurtosis_picth_arm = col_double(),
  kurtosis_yaw_arm = col_double(),
  skewness_roll_arm = col_double(),
  skewness_pitch_arm = col_double(),
  skewness_yaw_arm = col_double(),
  max_roll_arm = col_double(),
  max_picth_arm = col_double(),
  max_yaw_arm = col_double(),
  min_roll_arm = col_double(),
  min_pitch_arm = col_double(),
  min_yaw_arm = col_double(),
  amplitude_roll_arm = col_double(),
  amplitude_pitch_arm = col_double(),
  amplitude_yaw_arm = col_double(),
  roll_dumbbell = col_double(),
  pitch_dumbbell = col_double(),
  yaw_dumbbell = col_double(),
  kurtosis_roll_dumbbell = col_double(),
  kurtosis_picth_dumbbell = col_double(),
  kurtosis_yaw_dumbbell = col_character(),
  skewness_roll_dumbbell = col_double(),
  skewness_pitch_dumbbell = col_double(),
  skewness_yaw_dumbbell = col_character(),
  max_roll_dumbbell = col_double(),
  max_picth_dumbbell = col_double(),
  max_yaw_dumbbell = col_double(),
  min_roll_dumbbell = col_double(),
  min_pitch_dumbbell = col_double(),
  min_yaw_dumbbell = col_double(),
  amplitude_roll_dumbbell = col_double(),
  amplitude_pitch_dumbbell = col_double(),
  amplitude_yaw_dumbbell = col_double(),
  total_accel_dumbbell = col_integer(),
  var_accel_dumbbell = col_double(),
  avg_roll_dumbbell = col_double(),
  stddev_roll_dumbbell = col_double(),
  var_roll_dumbbell = col_double(),
  avg_pitch_dumbbell = col_double(),
  stddev_pitch_dumbbell = col_double(),
  var_pitch_dumbbell = col_double(),
  avg_yaw_dumbbell = col_double(),
  stddev_yaw_dumbbell = col_double(),
  var_yaw_dumbbell = col_double(),
  gyros_dumbbell_x = col_double(),
  gyros_dumbbell_y = col_double(),
  gyros_dumbbell_z = col_double(),
  accel_dumbbell_x = col_integer(),
  accel_dumbbell_y = col_integer(),
  accel_dumbbell_z = col_integer(),
  magnet_dumbbell_x = col_double(),
  magnet_dumbbell_y = col_double(),
  magnet_dumbbell_z = col_double(),
  roll_forearm = col_double(),
  pitch_forearm = col_double(),
  yaw_forearm = col_double(),
  kurtosis_roll_forearm = col_double(),
  kurtosis_picth_forearm = col_double(),
  kurtosis_yaw_forearm = col_character(),
  skewness_roll_forearm = col_double(),
  skewness_pitch_forearm = col_double(),
  skewness_yaw_forearm = col_character(),
  max_roll_forearm = col_double(),
  max_picth_forearm = col_double(),
  max_yaw_forearm = col_double(),
  min_roll_forearm = col_double(),
  min_pitch_forearm = col_double(),
  min_yaw_forearm = col_double(),
  amplitude_roll_forearm = col_double(),
  amplitude_pitch_forearm = col_double(),
  amplitude_yaw_forearm = col_double(),
  total_accel_forearm = col_integer(),
  var_accel_forearm = col_double(),
  avg_roll_forearm = col_double(),
  stddev_roll_forearm = col_double(),
  var_roll_forearm = col_double(),
  avg_pitch_forearm = col_double(),
  stddev_pitch_forearm = col_double(),
  var_pitch_forearm = col_double(),
  avg_yaw_forearm = col_double(),
  stddev_yaw_forearm = col_double(),
  var_yaw_forearm = col_double(),
  gyros_forearm_x = col_double(),
  gyros_forearm_y = col_double(),
  gyros_forearm_z = col_double(),
  accel_forearm_x = col_double(),
  accel_forearm_y = col_double(),
  accel_forearm_z = col_double(),
  magnet_forearm_x = col_double(),
  magnet_forearm_y = col_double(),
  magnet_forearm_z = col_double()
)

remove_div_by_0 <- function(file) {
  new_file <- paste0(file, ".no_div_by_0")
  sed_cmd <- paste0("sed 's/#DIV\\/0!//g' ", file, " > ", new_file)
  system(sed_cmd)

  invisible(new_file)
}

get_wlehar_data <- function() {
  wle_data_url <- "http://groupware.les.inf.puc-rio.br/static/WLE/WearableComputing_weight_lifting_exercises_biceps_curl_variations.csv"

  download.file(wle_data_url, wle_file)
}

get_jhu_data <- function() {
  training_url <- "https://d396qusza40orc.cloudfront.net/predmachlearn/pml-training.csv"
  testing_url <- "https://d396qusza40orc.cloudfront.net/predmachlearn/pml-testing.csv"

  download.file(training_url, jhu_training_file)
  download.file(testing_url, jhu_testing_file)
}

gen_wlehar <- function() {
  wle_file %>%
    remove_div_by_0() %>%
    read_csv(col_types = wle_col_spec) %>%
    as.data.frame()
}

gen_jhu_training <- function() {
  jhu_training_file %>%
    remove_div_by_0() %>%
    read_csv(col_types = jhu_training_col_spec) %>%
    select(-X1) %>%
    as.data.frame()
}

gen_jhu_testing <- function() {
  jhu_testing_file %>%
    remove_div_by_0() %>%
    read_csv(col_types = jhu_testing_col_spec) %>%
    select(-X1) %>%
    as.data.frame()
}

################################################################################

get_wlehar_data()
get_jhu_data()

wlehar <- gen_wlehar()
devtools::use_data(wlehar, overwrite = TRUE)

wlehar_jhu_training <- gen_jhu_training()
devtools::use_data(wlehar_jhu_training, overwrite = TRUE)

wlehar_jhu_testing <- gen_jhu_testing()
devtools::use_data(wlehar_jhu_testing, overwrite = TRUE)
dylan-stark/wlehar documentation built on May 15, 2019, 7:23 p.m.