-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrun_analysis.R
More file actions
54 lines (38 loc) · 1.57 KB
/
run_analysis.R
File metadata and controls
54 lines (38 loc) · 1.57 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
#HUGO ANDRES DORADO
#PROJECT GETTING AND CLEANING DATA
run_analysis <- function()
{
library(data.table)
library(plyr)
library(reshape2)
#Read dataBases
#Training datasets
trainX <- as.data.table(read.table("./train/X_train.txt"))
trainSubj <- fread("./train/subject_train.txt")
trainY <- fread("./train/y_train.txt")
#Test datasets
testX <- as.data.table(read.table("./test/X_test.txt"))
testSubj <- fread("./test/subject_test.txt")
testY <- fread("./test/y_test.txt")
#Activity labels and Features
activityLabs <- fread("./activity_labels.txt")
features <- fread("./features.txt")
setnames(activityLabs,c("idActivity","activity"))
setnames(features,c("idFeatures","feature"))
#Indentify the measurements on the mean and standard deviation
meansdFeatures <- grep("mean[/(]|std[/(]",features$feature)
newVarNames <- gsub("[()]","",features$feature[meansdFeatures] )
#Joint dataBases
xDataSet <- rbind(trainX,testX) [,meansdFeatures,with=FALSE]
subDataSet <- rbind(trainSubj,testSubj)
yDataSet <- rbind(trainY,testY)
allDataSet <- cbind(subDataSet,yDataSet,xDataSet)
setnames(allDataSet,c("subject","idActivity",newVarNames))
setkey(allDataSet,idActivity)
setkey(activityLabs,idActivity)
mergeDataBase <- merge(allDataSet,activityLabs)
#Reshape and mean by variable
reshapeDB <- melt(mergeDataBase,id=c("subject","activity"),measure.vars=newVarNames)
avgActiv <- dcast(reshapeDB ,activity + subject ~ variable,mean)
write.table (avgActiv, file="tidyData.txt", row.names=FALSE,quote=FALSE)
}