2019-10-24 22:08:05 +02:00
|
|
|
source("packrat/init.R")
|
2019-10-24 18:11:24 +02:00
|
|
|
|
|
|
|
library(RMySQL)
|
|
|
|
library(stringr)
|
|
|
|
library(dplyr)
|
|
|
|
|
|
|
|
participant <- snakemake@input[[1]]
|
2019-10-24 22:08:05 +02:00
|
|
|
group <- snakemake@params[["group"]]
|
|
|
|
table <- snakemake@params[["table"]]
|
2019-10-24 18:11:24 +02:00
|
|
|
sensor_file <- snakemake@output[[1]]
|
|
|
|
|
2019-12-17 19:41:27 +01:00
|
|
|
device_ids <- readLines(participant, n=1)
|
|
|
|
unified_device_id <- tail(strsplit(device_ids, ",")[[1]], 1)
|
2019-10-24 18:11:24 +02:00
|
|
|
rmysql.settingsfile <- "./.env"
|
|
|
|
|
|
|
|
stopDB <- dbConnect(MySQL(), default.file = rmysql.settingsfile, group = group)
|
2019-12-17 19:41:27 +01:00
|
|
|
query <- paste0("SELECT * FROM ", table, " WHERE device_id IN ('", gsub(",", "','", device_ids), "')")
|
2019-10-24 18:11:24 +02:00
|
|
|
sensor_data <- dbGetQuery(stopDB, query)
|
2019-12-17 19:41:27 +01:00
|
|
|
sensor_data <- sensor_data %>%
|
|
|
|
arrange(timestamp) %>%
|
|
|
|
mutate(device_id = unified_device_id)
|
2019-10-24 18:11:24 +02:00
|
|
|
|
|
|
|
# Droping duplicates on all columns except for _id
|
|
|
|
sensor_data <- sensor_data %>% distinct(!!!syms(setdiff(names(sensor_data), "_id")))
|
2019-11-12 20:56:31 +01:00
|
|
|
write.csv(sensor_data, sensor_file, row.names = FALSE)
|
2019-10-24 18:11:24 +02:00
|
|
|
dbDisconnect(stopDB)
|