-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrun_analysis.R
69 lines (60 loc) · 2.9 KB
/
run_analysis.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#Installing Packages
if(!require(dplyr)){
install.packages("dplyr")
}
library(dplyr)
#Checking & Retrieving Data
filename <- "assn3.zip"
if(!file.exists(filename)){dir.create("filename")
filedata <- "https://d396qusza40orc.cloudfront.net/getdata%2Fprojectfiles%2FUCI%20HAR%20Dataset.zip"
download.file(filedata, filename, method = "curl")
}
#Unzipping Data
if (!file.exists("assgn3")){dir.create("assgn3")
assgn3 <- unzip(zipfile=FileName, exdir="assgn3")
}
#Reading Tables
activitylabels <- read.table("UCI HAR Dataset/activity_labels.txt")
features <- read.table("UCI HAR Dataset/features.txt")
subjecttest <- read.table("UCI HAR Dataset/test/subject_test.txt")
xtest <- read.table("UCI HAR Dataset/test/X_test.txt")
ytest <- read.table("UCI HAR Dataset/test/y_test.txt")
subjecttrain <- read.table("UCI HAR Dataset/train/subject_train.txt")
xtrain <- read.table("UCI HAR Dataset/train/X_train.txt")
ytrain <- read.table("UCI HAR Dataset/train/y_train.txt")
#Assigning Column Names
colnames(activitylabels) <- c('ActivityNumber','Activity')
colnames(features) <- c('Number','Activity')
colnames(subjecttest) <- "SubjectNumber"
colnames(xtest) <- features[,2]
colnames(ytest) <- "ActivityNumber"
colnames(subjecttrain) <- "SubjectNumber"
colnames(xtrain) <- features[,2]
colnames(ytrain) <-"ActivityNumber"
#Merging Test and Training Data
mergedtrain <- cbind(subjecttrain, xtrain, ytrain)
mergedtest <- cbind(subjecttest, xtest, ytest)
mergeddata <- rbind(mergedtrain, mergedtest)
#Extracting Mean and Standard Deviation
extracteddata <- mergeddata %>% select(contains("mean"), contains("std"), contains("SubjectNumber"), contains("ActivityNumber"))
#Naming
extracteddata$ActivityNumber[extracteddata$ActivityNumber %in% "1"] <- "WALKING"
extracteddata$ActivityNumber[extracteddata$ActivityNumber %in% "2"] <- "WALKING_UPSTAIRS"
extracteddata$ActivityNumber[extracteddata$ActivityNumber %in% "3"] <- "WALKING_DOWNSTAIRS"
extracteddata$ActivityNumber[extracteddata$ActivityNumber %in% "4"] <- "SITTING"
extracteddata$ActivityNumber[extracteddata$ActivityNumber %in% "5"] <- "STANDING"
extracteddata$ActivityNumber[extracteddata$ActivityNumber %in% "6"] <- "LAYING"
names(extracteddata) <- gsub("ActivityNumber", "Activity", names(extracteddata))
#Labelling Dataset
names(extracteddata) <- gsub("Acc", "Accelerometer", names(extracteddata))
names(extracteddata) <- gsub("Gyro", "Gyroscope", names(extracteddata))
names(extracteddata) <- gsub("BodyBody", "Body", names(extracteddata))
names(extracteddata) <- gsub("Mag", "Magnitude", names(extracteddata))
names(extracteddata) <- gsub("^t", "Time", names(extracteddata))
names(extracteddata) <- gsub("^f", "Frequency", names(extracteddata))
#Second Independant Dataset
finaldata <- extracteddata %>%
group_by(SubjectNumber, Activity) %>%
summarise_all(list(mean = mean, median = median)) %>%
ungroup()
write.table(finaldata, "FinalData.txt", row.name=FALSE)