-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrunanalysis.R
More file actions
82 lines (63 loc) · 3.02 KB
/
runanalysis.R
File metadata and controls
82 lines (63 loc) · 3.02 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
75
76
77
78
79
80
81
82
importData <- function() {
library(dplyr)
#Setup our files for import
testx <- 'data/test/X_test.txt'
testy <- 'data/test/y_test.txt'
testSubject <-'data/test/subject_test.txt'
trainx <-'data/train/X_train.txt'
trainy <-'data/train/y_train.txt'
subjectTrain <-'data/train/subject_train.txt'
columnsFile <- 'data/features.txt'
#Import our column names
columnsDF <- read.table(columnsFile)
#Import our test activity data
testActivity <- read.table(testy,col.names=c("Activity"),colClasses=c('character'))
#update our activity labels for our test data
testActivity$Activity[testActivity$Activity == '1' ] <- 'WALKING'
testActivity$Activity[testActivity$Activity == '2' ] <- 'WALKING UPSTAIRS'
testActivity$Activity[testActivity$Activity == '3' ] <- 'WALKING DOWNSTAIRS'
testActivity$Activity[testActivity$Activity == '4' ] <- 'SITTING'
testActivity$Activity[testActivity$Activity == '5' ] <- 'STANDING'
testActivity$Activity[testActivity$Activity == '6' ] <- 'LAYING'
#Import our test subjects
testSubject <- read.table(testSubject,col.names=c("Subject"),colClasses=c('character'))
#Import our test data
testDF <- read.table(testx,col.names=columnsDF[,2])
#bind our test activity and subjects
testActivitySubject <- cbind(testActivity,testSubject)
#bind our subjects+activity and test data
test <- cbind(testActivitySubject,testDF)
#import our train activity
trainActivity <- read.table(trainy,col.names=c("Activity"),colClasses=c('character'))
#update our activity label for our training set
trainActivity$Activity[trainActivity$Activity == '1' ] <- 'WALKING'
trainActivity$Activity[trainActivity$Activity == '2' ] <- 'WALKING UPSTAIRS'
trainActivity$Activity[trainActivity$Activity == '3' ] <- 'WALKING DOWNSTAIRS'
trainActivity$Activity[trainActivity$Activity == '4' ] <- 'SITTING'
trainActivity$Activity[trainActivity$Activity == '5' ] <- 'STANDING'
trainActivity$Activity[trainActivity$Activity == '6' ] <- 'LAYING'
#import our train subjects
trainSubject <- read.table(subjectTrain,col.names=c("Subject"),colClasses=c('character'))
#import our train data
trainDF <- read.table(trainx,col.names=columnsDF[,2])
#bind our activity and subjects
trainActivitySubject <- cbind(trainActivity,trainSubject)
#bind our activity/subjects with data
train <- cbind(trainActivitySubject,trainDF)
#rbind our test and train data
df <- rbind(test,train)
#get mean names from columns
mean <- names(df)[grep("mean", names(df))]
#get std names from columns
std <- names(df)[grep("std", names(df))]
#concat activity,subject + mean + std columns into a single column list
cols <- c('Activity','Subject',mean,std)
#subset data frame
meanAndStd <- df[,cols]
#aggrigate data group by activity,subject, and calculate mean for each column
final <- meanAndStd %>%
group_by('Activity','Subject') %>%
summarise_each(funs(mean))
#write our final data frame to our file
write.table(final, file = "finalDataFrame.txt")
}