-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrun_analysis.R
More file actions
79 lines (53 loc) · 2.21 KB
/
run_analysis.R
File metadata and controls
79 lines (53 loc) · 2.21 KB
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
70
71
72
73
74
## run_analysis.R
library(dplyr)
## 1. Download data from web
rawDatHTML <- "https://d396qusza40orc.cloudfront.net/getdata%2Fprojectfiles%2FUCI%20HAR%20Dataset.zip"
rawDatDir <- "./rawData"
rawfileDir <- file.path(rawDatDir, "rawFile.zip")
workDatDir <- "./workData"
if (!file.exists(rawDatDir)) {
dir.create(rawDatDir)
download.file(url=rawDatHTML, destfile=rawfileDir)
}
if (!file.exists(workDatDir)) {
dir.create(workDatDir)
unzip(zipfile=rawfileDir, exdir=workDatDir)
}
## 2. Read Train & Test Data
## 2-1 Train Data
XtrainDat <- read.table("./workData/UCI HAR Dataset/train/X_train.txt")
YtrainDat <- read.table("./workData/UCI HAR Dataset/train/Y_train.txt")
SubTrainDat <- read.table("./workData/UCI HAR Dataset/train/subject_train.txt")
## 2-2 Test Data
XtestDat <- read.table("./workData/UCI HAR Dataset/test/X_test.txt")
YtestDat <- read.table("./workData/UCI HAR Dataset/test/Y_test.txt")
SubTestDat <- read.table("./workData/UCI HAR Dataset/test/subject_test.txt")
## 3. Merge Data using rbind
Xdat <- rbind(XtrainDat, XtestDat)
Ydat <- rbind(YtrainDat, YtestDat)
SubDat <- rbind(SubTrainDat, SubTestDat)
## 4. Read "features.txt" and rename Xdat
featuresDat <- read.table("./workData/UCI HAR Dataset/features.txt")
featuresDat <- select(featuresDat, "V2")
featuresDat <- rename(featuresDat, "features" = "V2")
names(Xdat) <- as.character(featuresDat$features) ## change column names
## 5. Extract columns with "mean" & "std"
Xdat <- Xdat[, grep("mean|std", names(Xdat))]
## 6. Merge columns of SubDat, Ydat, Xdat
allDat <- cbind(SubDat, Ydat, Xdat)
names(allDat)[1:2] <- c("Subject", "Activity")
## 7. Rename Activity from number to word description
## 1 WALKING
## 2 WALKING_UPSTAIRS
## 3 WALKING_DOWNSTAIRS
## 4 SITTING
## 5 STANDING
## 6 LAYING
activityLabel <- read.table("./workData/UCI HAR Dataset/activity_labels.txt")
allDat$Activity <- factor(allDat$Activity, levels=activityLabel[,1], labels=activityLabel[,2])
## 8. Tidy data
library(reshape2)
meltedDat <- melt(allDat, id=c("Subject", "Activity"))
tidyDat <- dcast(meltedDat, Subject+Activity ~ variable, mean)
## 9. Write table
write.table(tidyDat, "./tidy_data.txt", row.names=FALSE, quote=FALSE)