Installing necessary libraries
library(R.utils)
## Loading required package: R.oo
## Loading required package: R.methodsS3
## R.methodsS3 v1.7.1 (2016-02-15) successfully loaded. See ?R.methodsS3 for help.
## R.oo v1.21.0 (2016-10-30) successfully loaded. See ?R.oo for help.
##
## Attaching package: 'R.oo'
## The following objects are masked from 'package:methods':
##
## getClasses, getMethods
## The following objects are masked from 'package:base':
##
## attach, detach, gc, load, save
## R.utils v2.5.0 (2016-11-07) successfully loaded. See ?R.utils for help.
##
## Attaching package: 'R.utils'
## The following object is masked from 'package:utils':
##
## timestamp
## The following objects are masked from 'package:base':
##
## cat, commandArgs, getOption, inherits, isOpen, parse, warnings
library(data.table)
library(plyr)
Unzipping the downloaded file
unzip("F:/Programming Assignment/getdata%2Fprojectfiles%2FUCI HAR Dataset.zip",exdir = "F:/Programming Assignment")
Reading the Training Files
xtrain <- fread("F:/Programming Assignment/UCI HAR Dataset/train/X_train.txt",sep = " ",stringsAsFactors = FALSE, na.strings = c("NA","#DIV/0!",""))
dim(xtrain)
## [1] 7352 561
ytrain <- fread("F:/Programming Assignment/UCI HAR Dataset/train/y_train.txt",sep = " ",stringsAsFactors = FALSE, na.strings = c("NA","#DIV/0!",""))
dim(ytrain)
## [1] 7352 1
subjecttrain <- fread("F:/Programming Assignment/UCI HAR Dataset/train/subject_train.txt", sep = " ",stringsAsFactors = FALSE, na.strings = c("NA","#DIV/0!","") )
dim(subjecttrain)
## [1] 7352 1
Reading the Testing Files
xtest <- fread("F:/Programming Assignment/UCI HAR Dataset/test/X_test.txt",sep = " ",stringsAsFactors = FALSE, na.strings = c("NA","#DIV/0!","") )
dim(xtest)
## [1] 2947 561
ytest <- fread("F:/Programming Assignment/UCI HAR Dataset/test/y_test.txt",sep = " ",stringsAsFactors = FALSE, na.strings = c("NA","#DIV/0!","") )
dim(ytest)
## [1] 2947 1
subjecttest <- fread("F:/Programming Assignment/UCI HAR Dataset/test/subject_test.txt",sep = " ",stringsAsFactors = FALSE, na.strings = c("NA","#DIV/0!","") )
dim(subjecttest)
## [1] 2947 1
Reading other Important Files
features <- fread("F:/Programming Assignment/UCI HAR Dataset/features.txt")
dim(features)
## [1] 561 2
activitylabels <- fread("F:/Programming Assignment/UCI HAR Dataset/activity_labels.txt")
dim(activitylabels)
## [1] 6 2
Assigning names to the columns of training & test sets
colnames(xtrain) <- features$V2
colnames(xtest) <- features$V2
colnames(ytrain) <- "activityID"
colnames(ytest) <- "activityID"
colnames(subjecttrain) <- "subjectID"
colnames(subjecttest) <- "subjectID"
colnames(activitylabels) <- c("activityID","typeofactivity")
Merging the training & test sets using ‘cbind’ & ‘rbind’
mergedtrainingset <- cbind(xtrain,ytrain,subjecttrain)
mergedtestingset <- cbind(xtest,ytest,subjecttest)
wholedataset <- rbind(mergedtrainingset,mergedtestingset)
Extracting only the measurements on the mean and standard deviation for each measurement
columnnames <- colnames(wholedataset)
meanandstd <- (grepl("activityID",columnnames)|grepl("subjectID",columnnames)|grepl("mean..", columnnames)|grepl("std..",columnnames))
dsmeanandstd <- wholedataset[,c(meanandstd==TRUE)]
b <- subset(columnnames,meanandstd==TRUE)
dfmeanandstd <- wholedataset[,c(1:6,41:46,81:86,121:126,161:166,201:202,214:215,227:228,240:241,253:254,266:271,294:296,345:350,373:375,424:429,452:454,503:504,513,516:517,526,529:530,539,542:543,552,562:563)]
Using descriptive activity names to name the activities in the data set and appropriately labels the data set with descriptive variable names
wholedatasetwithactivitynames <- merge(dfmeanandstd,activitylabels,by = 'activityID',all.x = TRUE)
Creating a second, independent tidy data set with the average of each variable for each activity and each subject
reviseddata <- wholedatasetwithactivitynames[,-c(1)]
dim(reviseddata)
## [1] 10299 81
tidyreviseddata <- aggregate(.~subjectID + typeofactivity,reviseddata,function(x=colnames(wholedatasetwithactivitynames)) mean(x))
dim(tidyreviseddata)
## [1] 180 81
tidydataset <- tidyreviseddata[order(tidyreviseddata$subjectID,tidyreviseddata$typeofactivity),]
Converting the dataset into txt file
write.table(tidydataset,"F:/Programming Assignment/tidydataset.txt",row.name=FALSE)