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)