Last active
September 16, 2015 04:00
-
-
Save rischanlab/eb8b1f7296f46a676771 to your computer and use it in GitHub Desktop.
Second Preprocessing for Personal user behavior data
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
### Author Information ##### | |
### Coded by Rischan Mafrur ### | |
### 01/01/2015 ### | |
### For Thesis Purpose ### | |
### Language : R ### | |
### Dataset : Private Data ### | |
#Function for loading data | |
f_load_data <- function(path){ | |
library(shiny) | |
library("RSQLite") | |
library("rjson") | |
library("ggplot2") | |
library("scales") | |
library("ggmap") | |
library("rmarkdown") | |
library("rmarkdown") | |
setwd(path) | |
driver <- dbDriver("SQLite") | |
file_list <- list.files() | |
for (file in file_list){ | |
# if the merged dataset doesn't exist, create it | |
if (!exists("dataset")){ | |
con <- dbConnect(driver,file) | |
dataset <- dbGetQuery(con,"Select * from data") | |
} | |
# if the merged dataset does exist, append to it | |
if (exists("dataset")){ | |
con <- dbConnect(driver,file) | |
temp_dataset <-dbGetQuery(con,"Select * from data") | |
dataset<-rbind(dataset, temp_dataset) | |
rm(temp_dataset) | |
} | |
} | |
return (dataset) | |
} | |
#removing duplicate data | |
remove_duplicate <- function(data){ | |
return (data[!duplicated(data),]) | |
} | |
#function Activity data Processing | |
f_activity_data <- function(dataset){ | |
dActivityProbe <- subset(dataset, dataset$name=="ActivityProbe") | |
#head(dActivityProbe) | |
myData <- lapply(dActivityProbe$value, fromJSON) | |
dActivityProbe$value <- as.character(do.call(rbind,lapply(myData, `[` ,'activityLevel'))) | |
dActivityProbe$time <- do.call(rbind,lapply(myData, `[` ,'timestamp')) | |
dActivityProbe$time <- as.character(as.POSIXlt(as.numeric(dActivityProbe$time), origin="1970-01-01", tz = "GMT")) | |
dA <- cbind(dActivityProbe$value,dActivityProbe$time) | |
dActivityProbe <- as.data.frame(dA) | |
names(dActivityProbe) <- c("Activity","Time") | |
return (dActivityProbe) | |
} | |
#dunction for load apps data | |
f_apps_data <- function(dataset){ | |
dApplicationsProbe <- subset(dataset, dataset$name=="ApplicationsProbe") | |
#head(dApplicationsProbe) | |
myData <- lapply(dApplicationsProbe$value, fromJSON) | |
dApplicationsProbe$value <- as.character(do.call(rbind,lapply(myData, `[` ,'publicSourceDir'))) | |
dApplicationsProbe$time <- do.call(rbind,lapply(myData, `[` ,'timestamp')) | |
dApplicationsProbe$time <- as.character(as.POSIXlt(as.numeric(dApplicationsProbe$time), origin="1970-01-01", tz = "GMT")) | |
dA <- cbind(dApplicationsProbe$value,dApplicationsProbe$time) | |
dApplicationsProbe <- as.data.frame(dA) | |
names(dApplicationsProbe) <- c("Application","Time") | |
return (dApplicationsProbe) | |
} | |
#function for processing bluetooth data | |
f_bluetooth_data <- function(dataset){ | |
dBluetoothProbe <- subset(dataset, dataset$name=="BluetoothProbe") | |
#head(dBluetoothProbe) | |
myData <- lapply(dBluetoothProbe$value, fromJSON) | |
dBluetoothProbe$device <- as.character(do.call(rbind,lapply(myData, `[` ,'android.bluetooth.device.extra.NAME'))) | |
dBluetoothProbe$RSSI <- as.character(do.call(rbind,lapply(myData, `[` ,'android.bluetooth.device.extra.RSSI'))) | |
dBluetoothProbe$time <- do.call(rbind,lapply(myData, `[` ,'timestamp')) | |
dBluetoothProbe$time <- as.character(as.POSIXlt(as.numeric(dBluetoothProbe$time), origin="1970-01-01", tz = "GMT")) | |
dA <- cbind(dBluetoothProbe$device,dBluetoothProbe$RSSI, dBluetoothProbe$time) | |
dBluetoothProbe <- as.data.frame(dA) | |
names(dBluetoothProbe) <- c("BluetoothName","RSSI","Time") | |
#return (dBluetoothProbe) | |
return (dBluetoothProbe) | |
} | |
#function for processing battery data | |
f_battery_data <- function(dataset){ | |
dBatteryProbe <- subset(dataset, dataset$name=="BatteryProbe") | |
#head(dBatteryProbe) | |
myData <- lapply(dBatteryProbe$value, fromJSON) | |
dBatteryProbe$charge_type <- as.character(do.call(rbind,lapply(myData, `[` ,'charge_type'))) | |
dBatteryProbe$charge_type[dBatteryProbe$charge_type=="0"] <- "AC" | |
dBatteryProbe$charge_type[dBatteryProbe$charge_type=="1"] <- "USB" | |
dBatteryProbe$charge_type[dBatteryProbe$charge_type=="4"] <- "Wireless" | |
dBatteryProbe$health <- as.character(do.call(rbind,lapply(myData, `[` ,'health'))) | |
dBatteryProbe$health[dBatteryProbe$health=="1"] <- "unknown" | |
dBatteryProbe$health[dBatteryProbe$health=="2"] <- "good" | |
dBatteryProbe$health[dBatteryProbe$health=="3"] <- "overheat" | |
dBatteryProbe$health[dBatteryProbe$health=="4"] <- "dead" | |
dBatteryProbe$health[dBatteryProbe$health=="5"] <- "over_voltage" | |
dBatteryProbe$health[dBatteryProbe$health=="6"] <- "unspecified_failure" | |
dBatteryProbe$health[dBatteryProbe$health=="7"] <- "cold" | |
dBatteryProbe$plugged <- as.character(do.call(rbind,lapply(myData, `[` ,'plugged'))) | |
dBatteryProbe$plugged[dBatteryProbe$plugged=="0"] <- "on_battery" | |
dBatteryProbe$plugged[dBatteryProbe$plugged=="2"] <- "power_source" | |
dBatteryProbe$status <- as.character(do.call(rbind,lapply(myData, `[` ,'status'))) | |
dBatteryProbe$status[dBatteryProbe$status=="1"] <- "unknown" | |
dBatteryProbe$status[dBatteryProbe$status=="2"] <- "charging" | |
dBatteryProbe$status[dBatteryProbe$status=="3"] <- "discharging" | |
dBatteryProbe$status[dBatteryProbe$status=="4"] <- "not_charging" | |
dBatteryProbe$status[dBatteryProbe$status=="5"] <- "full" | |
dBatteryProbe$time <- do.call(rbind,lapply(myData, `[` ,'timestamp')) | |
dBatteryProbe$time <- as.character(as.POSIXlt(as.numeric(dBatteryProbe$time), origin="1970-01-01", tz = "GMT")) | |
dA <- cbind(dBatteryProbe$charge_type,dBatteryProbe$health,dBatteryProbe$plugged,dBatteryProbe$status,dBatteryProbe$time) | |
dBatteryProbe <- as.data.frame(dA) | |
names(dBatteryProbe) <- c("charge_type","health","plugged","status","time") | |
return (dBatteryProbe) | |
} | |
#function for processing call data | |
f_call_data <- function(dataset){ | |
dCallLogProbe <- subset(dataset, dataset$name=="CallLogProbe") | |
#dCallLogProbe | |
#head(dCallLogProbe) | |
myData <- lapply(dCallLogProbe$value, fromJSON) | |
dCallLogProbe$date <- do.call(rbind,lapply(myData, `[` ,'date')) | |
dCallLogProbe$time_calling <- as.character(as.POSIXlt(as.numeric(substr(dCallLogProbe$date, 1, 10)), origin="1970-01-01", tz = "GMT")) | |
dCallLogProbe$duration <- as.character(do.call(rbind,lapply(myData, `[` ,'duration'))) | |
dCallLogProbe$number <- substr(gsub("^.*:","",as.character(do.call(rbind,lapply(myData, `[` ,'number')))),2,41) | |
dCallLogProbe$type <- as.character(do.call(rbind,lapply(myData, `[` ,'type'))) | |
dCallLogProbe$type[dCallLogProbe$type=="1"] <- "incoming" | |
dCallLogProbe$type[dCallLogProbe$type=="2"] <- "outgoing" | |
dCallLogProbe$type[dCallLogProbe$type=="3"] <- "missed" | |
dA <- cbind(dCallLogProbe$number, dCallLogProbe$type,dCallLogProbe$time_calling,dCallLogProbe$duration) | |
dCallLogProbe <- as.data.frame(dA) | |
names(dCallLogProbe) <- c("number","type","time","duration") | |
return (dCallLogProbe) | |
} | |
#function for processing sms data | |
f_sms_data <- function(dataset){ | |
dSmsProbe <- subset(dataset, dataset$name=="SmsProbe") | |
#dSmsProbe | |
head(dSmsProbe) | |
myData <- lapply(dSmsProbe$value, fromJSON) | |
dSmsProbe$date <- do.call(rbind,lapply(myData, `[` ,'date')) | |
dSmsProbe$time <- as.character(as.POSIXlt(as.numeric(substr(dSmsProbe$date, 1, 10)), origin="1970-01-01", tz = "GMT")) | |
dSmsProbe$address <- as.character(do.call(rbind,lapply(myData, `[` ,'address'))) | |
dSmsProbe$type <- as.character(do.call(rbind,lapply(myData, `[` ,'type'))) | |
dSmsProbe$type[dSmsProbe$type=="0"] <- "all" | |
dSmsProbe$type[dSmsProbe$type=="1"] <- "inbox" | |
dSmsProbe$type[dSmsProbe$type=="2"] <- "sent" | |
dSmsProbe$type[dSmsProbe$type=="3"] <- "draft" | |
dSmsProbe$type[dSmsProbe$type=="4"] <- "outbox" | |
dSmsProbe$type[dSmsProbe$type=="5"] <- "failed" | |
dSmsProbe$type[dSmsProbe$type=="6"] <- "queued" | |
dSmsProbe$status <- as.character(do.call(rbind,lapply(myData, `[` ,'status'))) | |
dSmsProbe$status[dSmsProbe$status=="-1"] <- "none" | |
dSmsProbe$status[dSmsProbe$status=="0"] <- "complete" | |
dSmsProbe$status[dSmsProbe$status=="32"] <- "pending" | |
dSmsProbe$status[dSmsProbe$status=="64"] <- "failed" | |
# dSmsProbe$body-byte-len <- as.character(do.call(rbind,lapply(myData, `[` ,'body-byte-len'))) | |
# dSmsProbe$body-token-byte-len <- as.character(do.call(rbind,lapply(myData, `[` ,'body-token-byte-len'))) | |
# dSmsProbe$body-token-count <- as.character(do.call(rbind,lapply(myData, `[` ,'body-token-count'))) | |
dA <- cbind(dSmsProbe$time, dSmsProbe$type, dSmsProbe$address,dSmsProbe$status) | |
dSmsProbe <- as.data.frame(dA) | |
names(dSmsProbe) <- c("when", "type","address","status") | |
return (dSmsProbe) | |
} | |
#function for processing contact data | |
# f_contact_data <- function(dataset){ | |
# dContactProbe <- subset(dataset, dataset$name=="ContactProbe") | |
# dContactProbe <- subset(dataset, dataset$name=="ContactProbe") | |
# myData <- lapply(dContactProbe$value, fromJSON) | |
# dContactProbe$date <- do.call(rbind,lapply(myData, `[` ,'date')) | |
# dContactProbe$time_calling <- as.character(as.POSIXlt(as.numeric(substr(dContactProbe$date, 1, 10)), origin="1970-01-01", tz = "GMT")) | |
# dContactProbe$duration <- as.character(do.call(rbind,lapply(myData, `[` ,'duration'))) | |
# dContactProbe$number <- as.character(do.call(rbind,lapply(myData, `[` ,'number'))) | |
# dContactProbe$type <- as.character(do.call(rbind,lapply(myData, `[` ,'type'))) | |
# dContactProbe$type[dContactProbe$type=="1"] <- "incoming" | |
# dContactProbe$type[dContactProbe$type=="2"] <- "outgoing" | |
# dContactProbe$type[dContactProbe$type=="3"] <- "missed" | |
# dA <- cbind(dContactProbe$type, dContactProbe$number,dContactProbe$time_calling,dContactProbe$duration) | |
# dContactProbe <- as.data.frame(dA) | |
# names(dContactProbe) <- c("type","number","time","duration") | |
# summary(dContactProbe) | |
# return (dContactProbe) | |
# | |
# } | |
#function for processing hardware information data | |
f_hardware_data <- function(dataset){ | |
dHardwareInfoProbe <- subset(dataset, dataset$name=="HardwareInfoProbe") | |
#head(dHardwareInfoProbe) | |
myData <- lapply(dHardwareInfoProbe$value, fromJSON) | |
dHardwareInfoProbe$brand <- as.character(do.call(rbind,lapply(myData, `[` ,'brand'))) | |
dHardwareInfoProbe$model <- as.character(do.call(rbind,lapply(myData, `[` ,'model'))) | |
dHardwareInfoProbe$bluetoothMac <- as.character(do.call(rbind,lapply(myData, `[` ,'bluetoothMac'))) | |
dHardwareInfoProbe$wifiMac <- as.character(do.call(rbind,lapply(myData, `[` ,'wifiMac'))) | |
dA <- cbind(dHardwareInfoProbe$brand,dHardwareInfoProbe$model,dHardwareInfoProbe$bluetoothMac,dHardwareInfoProbe$wifiMac) | |
dHardwareInfoProbe <- as.data.frame(dA) | |
names(dHardwareInfoProbe) <- c("brand","model","bluetoothMac", "wifiMac") | |
return (dHardwareInfoProbe) | |
} | |
#function for processing bookmark data | |
f_bookmark_data <- function(dataset){ | |
dBrowserBookmarksProbe <- subset(dataset, dataset$name=="BrowserBookmarksProbe") | |
#head(dBrowserBookmarksProbe) | |
myData <- lapply(dBrowserBookmarksProbe$value, fromJSON) | |
dBrowserBookmarksProbe$time <- do.call(rbind,lapply(myData, `[` ,'created')) | |
dBrowserBookmarksProbe$when <- as.character(as.POSIXlt(as.numeric(dBrowserBookmarksProbe$time), origin="1970-01-01", tz = "GMT")) | |
dBrowserBookmarksProbe$title <- as.character(do.call(rbind,lapply(myData, `[` ,'title'))) | |
dBrowserBookmarksProbe$url <- as.character(do.call(rbind,lapply(myData, `[` ,'url'))) | |
dA <- cbind(dBrowserBookmarksProbe$when,dBrowserBookmarksProbe$title, dBrowserBookmarksProbe$url) | |
dBrowserBookmarksProbe <- as.data.frame(dA) | |
names(dBrowserBookmarksProbe) <- c("created","title","url") | |
return (dBrowserBookmarksProbe) | |
} | |
#function for processing searching log data | |
f_search_data <- function(dataset){ | |
dBrowserSearchesProbe <- subset(dataset, dataset$name=="BrowserSearchesProbe") | |
#head(dBrowserSearchesProbe) | |
myData <- lapply(dBrowserSearchesProbe$value, fromJSON) | |
dBrowserSearchesProbe$time <- do.call(rbind,lapply(myData, `[` ,'date')) | |
dBrowserSearchesProbe$when <- as.character(as.POSIXlt(as.numeric(dBrowserSearchesProbe$time), origin="1970-01-01", tz = "GMT")) | |
dBrowserSearchesProbe$query <- as.character(do.call(rbind,lapply(myData, `[` ,'search'))) | |
dA <- cbind(dBrowserSearchesProbe$when,dBrowserSearchesProbe$query) | |
dBrowserSearchesProbe <- as.data.frame(dA) | |
names(dBrowserSearchesProbe) <- c("when","query") | |
return (dBrowserSearchesProbe) | |
} | |
#function for processing light sensors data | |
f_light_data <- function(dataset){ | |
dLightSensorProbe <- subset(dataset, dataset$name=="LightSensorProbe") | |
#head(dLightSensorProbe) | |
myData <- lapply(dLightSensorProbe$value, fromJSON) | |
dLightSensorProbe$time <- do.call(rbind,lapply(myData, `[` ,'timestamp')) | |
dLightSensorProbe$timestamp <- as.character(as.POSIXlt(as.numeric(dLightSensorProbe$time), origin="1970-01-01", tz = "GMT")) | |
dLightSensorProbe$accuracy <- as.character(do.call(rbind,lapply(myData, `[` ,'accuracy'))) | |
dLightSensorProbe$lux <- as.character(do.call(rbind,lapply(myData, `[` ,'lux'))) | |
dA <- cbind(dLightSensorProbe$timestamp,dLightSensorProbe$accuracy, dLightSensorProbe$lux) | |
dLightSensorProbe <- as.data.frame(dA) | |
names(dLightSensorProbe) <- c("timestamp","accuracy","lux") | |
return (dLightSensorProbe) | |
} | |
#function for processing magnetic field sensor data | |
f_magno_data <- function(dataset){ | |
dMagneticFieldSensorProbe <- subset(dataset, dataset$name=="MagneticFieldSensorProbe") | |
#head(dMagneticFieldSensorProbe) | |
myData <- lapply(dMagneticFieldSensorProbe$value, fromJSON) | |
dMagneticFieldSensorProbe$time <- do.call(rbind,lapply(myData, `[` ,'timestamp')) | |
dMagneticFieldSensorProbe$timestamp <- as.character(as.POSIXlt(as.numeric(dMagneticFieldSensorProbe$time), origin="1970-01-01", tz = "GMT")) | |
dMagneticFieldSensorProbe$accuracy <- as.character(do.call(rbind,lapply(myData, `[` ,'accuracy'))) | |
dMagneticFieldSensorProbe$accuracy[dMagneticFieldSensorProbe$accuracy=="1"] <- "low" | |
dMagneticFieldSensorProbe$accuracy[dMagneticFieldSensorProbe$accuracy=="2"] <- "medium" | |
dMagneticFieldSensorProbe$accuracy[dMagneticFieldSensorProbe$accuracy=="3"] <- "high" | |
dMagneticFieldSensorProbe$x <- as.character(do.call(rbind,lapply(myData, `[` ,'x'))) | |
dMagneticFieldSensorProbe$y <- as.character(do.call(rbind,lapply(myData, `[` ,'y'))) | |
dMagneticFieldSensorProbe$z <- as.character(do.call(rbind,lapply(myData, `[` ,'z'))) | |
dA <- cbind(dMagneticFieldSensorProbe$timestamp,dMagneticFieldSensorProbe$accuracy, dMagneticFieldSensorProbe$x,dMagneticFieldSensorProbe$y, dMagneticFieldSensorProbe$z) | |
dMagneticFieldSensorProbe <- as.data.frame(dA) | |
names(dMagneticFieldSensorProbe) <- c("timestamp","accuracy","x","y","z") | |
return (dMagneticFieldSensorProbe) | |
} | |
#function for processing preassure data | |
f_pressure_data <- function(dataset){ | |
dPressureSensorProbe <- subset(dataset, dataset$name=="PressureSensorProbe") | |
#head(dPressureSensorProbe) | |
myData <- lapply(dPressureSensorProbe$value, fromJSON) | |
dPressureSensorProbe$time <- do.call(rbind,lapply(myData, `[` ,'timestamp')) | |
dPressureSensorProbe$timestamp <- as.character(as.POSIXlt(as.numeric(dPressureSensorProbe$time), origin="1970-01-01", tz = "GMT")) | |
dPressureSensorProbe$accuracy <- as.character(do.call(rbind,lapply(myData, `[` ,'accuracy'))) | |
dPressureSensorProbe$pressure <- as.character(do.call(rbind,lapply(myData, `[` ,'pressure'))) | |
dA <- cbind(dPressureSensorProbe$timestamp,dPressureSensorProbe$accuracy, dPressureSensorProbe$pressure) | |
dPressureSensorProbe <- as.data.frame(dA) | |
names(dPressureSensorProbe) <- c("timestamp","accuracy","pressure") | |
return (dPressureSensorProbe) | |
} | |
#function for processing proximity data | |
f_proximity_data <- function(dataset){ | |
dProximitySensorProbe <- subset(dataset, dataset$name=="ProximitySensorProbe") | |
#head(dProximitySensorProbe) | |
myData <- lapply(dProximitySensorProbe$value, fromJSON) | |
dProximitySensorProbe$time <- do.call(rbind,lapply(myData, `[` ,'timestamp')) | |
dProximitySensorProbe$timestamp <- as.character(as.POSIXlt(as.numeric(dProximitySensorProbe$time), origin="1970-01-01", tz = "GMT")) | |
dProximitySensorProbe$accuracy <- as.character(do.call(rbind,lapply(myData, `[` ,'accuracy'))) | |
dProximitySensorProbe$distance <- as.character(do.call(rbind,lapply(myData, `[` ,'distance'))) | |
dA <- cbind(dProximitySensorProbe$timestamp,dProximitySensorProbe$accuracy, dProximitySensorProbe$distance) | |
dProximitySensorProbe <- as.data.frame(dA) | |
names(dProximitySensorProbe) <- c("timestamp","accuracy","distance") | |
return (dProximitySensorProbe) | |
} | |
#function for processing running application data | |
f_runapps_data <- function(dataset){ | |
dRunningApplicationsProbe <- subset(dataset, dataset$name=="RunningApplicationsProbe") | |
#head(dRunningApplicationsProbe) | |
myData <- lapply(dRunningApplicationsProbe$value, fromJSON) | |
dRunningApplicationsProbe$time <- do.call(rbind,lapply(myData, `[` ,'timestamp')) | |
dRunningApplicationsProbe$timestamp <- as.character(as.POSIXlt(as.numeric(dRunningApplicationsProbe$time), origin="1970-01-01", tz = "GMT")) | |
dRunningApplicationsProbe$duration <- as.character(do.call(rbind,lapply(myData, function(x) x$duration))) | |
dRunningApplicationsProbe$package <- as.character(do.call(rbind,lapply(myData, function(x) x$taskInfo$baseIntent$mComponent$mPackage))) | |
dA <- cbind(dRunningApplicationsProbe$timestamp, dRunningApplicationsProbe$duration,dRunningApplicationsProbe$package) | |
dRunningApplicationsProbe <- as.data.frame(dA) | |
names(dRunningApplicationsProbe) <- c("timestamp","duration","package") | |
return (dRunningApplicationsProbe) | |
} | |
#function for processing screend data | |
f_screen_data <- function(dataset){ | |
dScreenProbe <- subset(dataset, dataset$name=="ScreenProbe") | |
#head(dScreenProbe) | |
myData <- lapply(dScreenProbe$value, fromJSON) | |
dScreenProbe$time <- do.call(rbind,lapply(myData, `[` ,'timestamp')) | |
dScreenProbe$timestamp <- as.character(as.POSIXlt(as.numeric(dScreenProbe$time), origin="1970-01-01", tz = "GMT")) | |
dScreenProbe$screenOn <- as.character(do.call(rbind,lapply(myData, `[` ,'screenOn'))) | |
dA <- cbind(dScreenProbe$timestamp, dScreenProbe$screenOn) | |
dScreenProbe <- as.data.frame(dA) | |
names(dScreenProbe) <- c("timestamp","screenON") | |
return (dScreenProbe) | |
} | |
#function for processing location data | |
f_location_data <- function(dataset){ | |
dSimpleLocationProbe <- subset(dataset, dataset$name=="SimpleLocationProbe") | |
#dSimpleLocationProbe | |
#head(dSimpleLocationProbe) | |
# location <-dSimpleLocationProbe | |
# location$latitude <- as.numeric(as.character(dSimpleLocationProbe$latitude)) | |
# location$longitude <- as.numeric(as.character(dSimpleLocationProbe$longitude)) | |
# | |
myData <- lapply(dSimpleLocationProbe$value, fromJSON) | |
dSimpleLocationProbe$Latitude <- as.character(do.call(rbind,lapply(myData, `[` ,'mLatitude'))) | |
dSimpleLocationProbe$Longitude <- as.character(do.call(rbind,lapply(myData, `[` ,'mLongitude'))) | |
dSimpleLocationProbe$time <- do.call(rbind,lapply(myData, `[` ,'timestamp')) | |
dSimpleLocationProbe$when <- as.character(as.POSIXlt(as.numeric(dSimpleLocationProbe$time), origin="1970-01-01", tz = "GMT")) | |
dA <- cbind(dSimpleLocationProbe$when, dSimpleLocationProbe$Latitude , dSimpleLocationProbe$Longitude) | |
dSimpleLocationProbe <- as.data.frame(dA) | |
names(dSimpleLocationProbe) <- c("when","latitude","longitude") | |
return (dSimpleLocationProbe) | |
} | |
#function for processing wifi data | |
f_wifi_data <- function(dataset){ | |
dWifiProbe <- subset(dataset, dataset$name=="WifiProbe") | |
#head(dWifiProbe) | |
myData <- lapply(dWifiProbe$value, fromJSON) | |
dWifiProbe$time <- do.call(rbind,lapply(myData, `[` ,'timestamp')) | |
dWifiProbe$timestamp <- as.character(as.POSIXlt(as.numeric(dWifiProbe$time), origin="1970-01-01", tz = "GMT")) | |
dWifiProbe$BSSID <- as.character(do.call(rbind,lapply(myData, `[` ,'BSSID'))) | |
dWifiProbe$SSID <- as.character(do.call(rbind,lapply(myData, `[` ,'SSID'))) | |
dWifiProbe$capabilities <- as.character(do.call(rbind,lapply(myData, `[` ,'capabilities'))) | |
dWifiProbe$frequency <- as.character(do.call(rbind,lapply(myData, `[` ,'frequency'))) | |
dWifiProbe$level <- as.character(do.call(rbind,lapply(myData, `[` ,'level'))) | |
dA <- cbind(dWifiProbe$timestamp, dWifiProbe$BSSID,dWifiProbe$SSID,dWifiProbe$capabilities,dWifiProbe$frequency,dWifiProbe$level) | |
dWifiProbe <- as.data.frame(dA) | |
names(dWifiProbe) <- c("timestamp","BSSID","SSID","capabilities","frequency","level") | |
return (dWifiProbe) | |
} | |
# | |
# | |
# raw_data <- f_load_data(print(eval(sprintf("D:/DATA/raw/ENTJ_6454/edu.mit.media.funf.wifiscanner/default/archive",file)))) | |
# #removing duplicate data | |
# dataset <- remove_duplicate(raw_data) | |
# | |
# | |
# dWifiProbe <- subset(dataset, dataset$name=="WifiProbe") | |
# head(dWifiProbe) | |
# myData <- lapply(dWifiProbe$value, fromJSON) | |
# dWifiProbe$time <- do.call(rbind,lapply(myData, `[` ,'timestamp')) | |
# dWifiProbe$timestamp <- as.character(dWifiProbe$time) | |
# dWifiProbe$BSSID <- as.character(do.call(rbind,lapply(myData, `[` ,'BSSID'))) | |
# dWifiProbe$SSID <- as.character(do.call(rbind,lapply(myData, `[` ,'SSID'))) | |
# dWifiProbe$capabilities <- as.character(do.call(rbind,lapply(myData, `[` ,'capabilities'))) | |
# dWifiProbe$frequency <- as.character(do.call(rbind,lapply(myData, `[` ,'frequency'))) | |
# dWifiProbe$level <- as.character(do.call(rbind,lapply(myData, `[` ,'level'))) | |
# dA <- cbind(dWifiProbe$timestamp, dWifiProbe$BSSID,dWifiProbe$SSID,dWifiProbe$capabilities,dWifiProbe$frequency,dWifiProbe$level) | |
# dWifiProbe <- as.data.frame(dA) | |
# names(dWifiProbe) <- c("timestamp","BSSID","SSID","capabilities","frequency","level") | |
# | |
# #function for processing call data | |
# | |
# dCallLogProbe <- subset(dataset, dataset$name=="CallLogProbe") | |
# #dCallLogProbe | |
# head(dCallLogProbe) | |
# tail(dCallLogProbe) | |
# | |
# myData <- lapply(dCallLogProbe$value, fromJSON) | |
# dCallLogProbe$date <- do.call(rbind,lapply(myData, `[` ,'date')) | |
# dCallLogProbe$time_calling <- as.character(as.POSIXct(as.numeric(substr(dCallLogProbe$date,1,10)), origin="1970-01-01", tz = "GMT")) | |
# dCallLogProbe$duration <- as.character(do.call(rbind,lapply(myData, `[` ,'duration'))) | |
# dCallLogProbe$number <- substr(gsub("^.*:","",as.character(do.call(rbind,lapply(myData, `[` ,'number')))),2,41) | |
# dCallLogProbe$type <- as.character(do.call(rbind,lapply(myData, `[` ,'type'))) | |
# dCallLogProbe$type[dCallLogProbe$type=="1"] <- "incoming" | |
# dCallLogProbe$type[dCallLogProbe$type=="2"] <- "outgoing" | |
# dCallLogProbe$type[dCallLogProbe$type=="3"] <- "missed" | |
# dA <- cbind(dCallLogProbe$number, dCallLogProbe$type,dCallLogProbe$time_calling,dCallLogProbe$duration) | |
# dCallLogProbe <- as.data.frame(dA) | |
# names(dCallLogProbe) <- c("number","type","time","duration") | |
# | |
# | |
# | |
# #function for processing sms data | |
# | |
# dSmsProbe <- subset(dataset, dataset$name=="SmsProbe") | |
# #dSmsProbe | |
# head(dSmsProbe) | |
# tail(dSmsProbe) | |
# myData <- lapply(dSmsProbe$value, fromJSON) | |
# dSmsProbe$date <- do.call(rbind,lapply(myData, `[` ,'date')) | |
# dSmsProbe$time <- as.character(as.POSIXct(as.numeric(substr(dSmsProbe$date, 1, 10)), origin="1970-01-01", tz = "GMT")) | |
# dSmsProbe$address <- as.character(do.call(rbind,lapply(myData, `[` ,'address'))) | |
# dSmsProbe$type <- as.character(do.call(rbind,lapply(myData, `[` ,'type'))) | |
# dSmsProbe$type[dSmsProbe$type=="0"] <- "all" | |
# dSmsProbe$type[dSmsProbe$type=="1"] <- "inbox" | |
# dSmsProbe$type[dSmsProbe$type=="2"] <- "sent" | |
# dSmsProbe$type[dSmsProbe$type=="3"] <- "draft" | |
# dSmsProbe$type[dSmsProbe$type=="4"] <- "outbox" | |
# dSmsProbe$type[dSmsProbe$type=="5"] <- "failed" | |
# dSmsProbe$type[dSmsProbe$type=="6"] <- "queued" | |
# dSmsProbe$status <- as.character(do.call(rbind,lapply(myData, `[` ,'status'))) | |
# dSmsProbe$status[dSmsProbe$status=="-1"] <- "none" | |
# dSmsProbe$status[dSmsProbe$status=="0"] <- "complete" | |
# dSmsProbe$status[dSmsProbe$status=="32"] <- "pending" | |
# dSmsProbe$status[dSmsProbe$status=="64"] <- "failed" | |
# # dSmsProbe$body-byte-len <- as.character(do.call(rbind,lapply(myData, `[` ,'body-byte-len'))) | |
# # dSmsProbe$body-token-byte-len <- as.character(do.call(rbind,lapply(myData, `[` ,'body-token-byte-len'))) | |
# # dSmsProbe$body-token-count <- as.character(do.call(rbind,lapply(myData, `[` ,'body-token-count'))) | |
# dA <- cbind(dSmsProbe$time, dSmsProbe$type, dSmsProbe$address,dSmsProbe$status) | |
# dSmsProbe <- as.data.frame(dA) | |
# names(dSmsProbe) <- c("when", "type","address","status") | |
# | |
# | |
# | |
# | |
# | |
# # | |
# #running application | |
# # # | |
# raw_data <- f_load_data("D:/DATA/raw/ENFP_0719/edu.mit.media.funf.wifiscanner/default/archive") | |
# #removing duplicate data | |
# dataset <- remove_duplicate(raw_data) | |
# #subsetting | |
# d_activity <- f_activity_data(dataset) | |
# d_bluetooth <- f_bluetooth_data(dataset) | |
# d_battery <- f_battery_data(dataset) | |
# d_call <- f_call_data(dataset) | |
# d_sms <- f_sms_data(dataset) | |
# d_search <- f_search_data(dataset) | |
# d_runapps <- f_runapps_data(dataset) | |
# d_screen <- f_screen_data(dataset) | |
# d_location <- f_location_data(dataset) | |
# d_wifi <- f_wifi_data(dataset) | |
# | |
# write.csv(d_activity, print(eval(sprintf("D:/DATA/output/%s/d_activity.csv",file)))) | |
# write.csv(d_bluetooth, print(eval(sprintf("D:/DATA/output/%s/d_bluetooth.csv",file)))) | |
# write.csv(d_battery, print(eval(sprintf("D:/DATA/output/%s/d_battery.csv",file)))) | |
# write.csv(d_call, print(eval(sprintf("D:/DATA/output/%s/d_call.csv",file)))) | |
# write.csv(d_sms, print(eval(sprintf("D:/DATA/output/%s/d_sms.csv",file)))) | |
# write.csv(d_search, print(eval(sprintf("D:/DATA/output/%s/d_search.csv",file)))) | |
# write.csv(d_runapps, print(eval(sprintf("D:/DATA/output/%s/d_runapps.csv",file)))) | |
# write.csv(d_screen, print(eval(sprintf("D:/DATA/output/%s/d_screen.csv",file)))) | |
# write.csv(d_location, print(eval(sprintf("D:/DATA/output/%s/d_location.csv",file)))) | |
# write.csv(d_wifi, print(eval(sprintf("D:/DATA/output/%s/d_wifi.csv",file)))) | |
# | |
# d_sms <- d_sms[order(d_sms$when),] | |
# | |
# # # | |
# # # #problem ENFP_0773 | |
# | |
# | |
setwd("D:/DATA/kampret") | |
file_list <- list.files() | |
for (file in file_list){ | |
#print(eval(sprintf("D:/DATA/output/%s/d_location.csv",file))) | |
dir.create(print(eval(sprintf("D:/DATA/output/%s",file)))) | |
} | |
for (file in file_list){ | |
dataset <- NULL | |
d_activity <- NULL | |
d_bluetooth <- NULL | |
d_battery <- NULL | |
d_call <- NULL | |
d_sms <- NULL | |
d_search <- NULL | |
d_runapps <- NULL | |
d_screen <- NULL | |
d_location <- NULL | |
d_wifi <- NULL | |
raw_data <- f_load_data(print(eval(sprintf("D:/DATA/kampret/%s/edu.mit.media.funf.wifiscanner/default/archive",file)))) | |
#removing duplicate data | |
dataset <- remove_duplicate(raw_data) | |
#subsetting | |
d_activity <- f_activity_data(dataset) | |
d_bluetooth <- f_bluetooth_data(dataset) | |
d_battery <- f_battery_data(dataset) | |
d_call <- f_call_data(dataset) | |
d_sms <- f_sms_data(dataset) | |
d_search <- f_search_data(dataset) | |
d_runapps <- f_runapps_data(dataset) | |
d_screen <- f_screen_data(dataset) | |
d_location <- f_location_data(dataset) | |
d_wifi <- f_wifi_data(dataset) | |
write.csv(d_activity, print(eval(sprintf("D:/DATA/output/%s/d_activity.csv",file)))) | |
write.csv(d_bluetooth, print(eval(sprintf("D:/DATA/output/%s/d_bluetooth.csv",file)))) | |
write.csv(d_battery, print(eval(sprintf("D:/DATA/output/%s/d_battery.csv",file)))) | |
write.csv(d_call, print(eval(sprintf("D:/DATA/output/%s/d_call.csv",file)))) | |
write.csv(d_sms, print(eval(sprintf("D:/DATA/output/%s/d_sms.csv",file)))) | |
write.csv(d_search, print(eval(sprintf("D:/DATA/output/%s/d_search.csv",file)))) | |
write.csv(d_runapps, print(eval(sprintf("D:/DATA/output/%s/d_runapps.csv",file)))) | |
write.csv(d_screen, print(eval(sprintf("D:/DATA/output/%s/d_screen.csv",file)))) | |
write.csv(d_location, print(eval(sprintf("D:/DATA/output/%s/d_location.csv",file)))) | |
write.csv(d_wifi, print(eval(sprintf("D:/DATA/output/%s/d_wifi.csv",file)))) | |
} | |
# for (file in file_list){ | |
# #print(paste(file)) | |
# #print(eval(sprintf("D:/DATA/example/%s/edu.mit.media.funf.wifiscanner/default/archive",file))) | |
# "D:/DATA/output/"paste(file, collapse = "")),showWarnings = TRUE) | |
# print(eval(sprintf("D:/DATA/output/%s",file))) | |
# } | |
# | |
# ?eval | |
# | |
# paste("Today is", date(),"dads") | |
# paste(1:12) | |
#?system.time | |
#run all function and show time execution for each function | |
# | |
# system.time(dataset <- f_load_data("D:/DATA/example")) | |
# system.time(d_activity <- f_activity_data(dataset)) | |
# system.time(d_apps <- f_apps_data(dataset)) | |
# system.time(d_bluetooth <- f_bluetooth_data(dataset)) | |
# system.time(d_battery <- f_battery_data(dataset)) | |
# system.time(d_call <- f_call_data(dataset)) | |
# # system.time(d_contact <- f_contact_data(dataset)) | |
# system.time(d_sms <- f_sms_data(dataset)) | |
# system.time(d_hardware <- f_hardware_data(dataset)) | |
# system.time(d_bookmark <- f_bookmark_data(dataset)) | |
# system.time(d_search <- f_search_data(dataset)) | |
# system.time(d_light <- f_light_data(dataset)) | |
# system.time(d_magno <- f_magno_data(dataset)) | |
# system.time(d_pressure <- f_pressure_data(dataset)) | |
# system.time(d_proximity <- f_proximity_data(dataset)) | |
# system.time(d_runapps <- f_runapps_data(dataset)) | |
# system.time(d_screen <- f_screen_data(dataset)) | |
# system.time(d_location <- f_location_data(dataset)) | |
# system.time(d_wifi <- f_wifi_data(dataset)) | |
# | |
#loading data | |
#raw_data <- f_load_data("D:/DATA/raw/ENFP_0719/edu.mit.media.funf.wifiscanner/default/archive") | |
#removing duplicate data | |
#dataset <- remove_duplicate(raw_data) | |
# d_activity <- f_activity_data(dataset) | |
# d_apps <- f_apps_data(dataset) | |
# d_bluetooth <- f_bluetooth_data(dataset) | |
# d_battery <- f_battery_data(dataset) | |
# d_call <- f_call_data(dataset) | |
# #d_contact <- f_contact_data(dataset) | |
# d_sms <- f_sms_data(dataset) | |
# d_hardware <- f_hardware_data(dataset) | |
# d_bookmark <- f_bookmark_data(dataset) | |
# d_search <- f_search_data(dataset) | |
# d_light <- f_light_data(dataset) | |
# d_magno <- f_magno_data(dataset) | |
# d_pressure <- f_pressure_data(dataset) | |
# d_proximity <- f_proximity_data(dataset) | |
# d_runapps <- f_runapps_data(dataset) | |
# head(d_runapps) | |
# d_screen <- f_screen_data(dataset) | |
# d_location <- f_location_data(dataset) | |
# d_wifi <- f_wifi_data(dataset) | |
# url <- c("facebook.com","twitter.com","facebook.com","facebook.com","twitter.com","facebook.com","chonnam.com") | |
# | |
# seque <- seq(1,7) | |
# | |
# df <- cbind(seque,url) | |
# | |
# df <- as.data.frame(df) | |
# | |
# df$label <- NULL | |
# df$label[df$url=="facebook.com"] <- "sosmed" | |
# df$label[df$url=="twitter.com"] <- "sosmed" | |
# df$label[df$url=="chonnam.com"] <- "kampus" | |
as.POSIXct(d_activity$time, format="%Y-%m-%d %H:%M:%S") | |
dataset <- f_load_data(print(eval(sprintf("D:/DATA/raw/ENTJ_6454/edu.mit.media.funf.wifiscanner/default/archive",file)))) | |
dActivityProbe <- subset(dataset, dataset$name=="ActivityProbe") | |
head(dActivityProbe) | |
myData <- lapply(dActivityProbe$value, fromJSON) | |
dActivityProbe$value <- as.character(do.call(rbind,lapply(myData, `[` ,'activityLevel'))) | |
dActivityProbe$time <- do.call(rbind,lapply(myData, `[` ,'timestamp')) | |
dActivityProbe$time <- as.character(as.POSIXct(as.numeric(dActivityProbe$time), origin="1970-01-01", tz = "GMT")) | |
dA <- cbind(dActivityProbe$value,dActivityProbe$time) | |
dActivityProbe <- as.data.frame(dA) | |
names(dActivityProbe) <- c("Activity","Time") |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment