-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathrun_analysis.R
More file actions
40 lines (30 loc) · 1.58 KB
/
Copy pathrun_analysis.R
File metadata and controls
40 lines (30 loc) · 1.58 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
library(dplyr)
#read files
train_set <- read.table("UCI HAR Dataset/train/X_train.txt")
train_labels <- read.table("UCI HAR Dataset/train/y_train.txt")
train_subjects <- read.table("UCI HAR Dataset/train/subject_train.txt")
test_set <- read.table("UCI HAR Dataset/test/X_test.txt")
test_labels <- read.table("UCI HAR Dataset/test/y_test.txt")
test_subjects <- read.table("UCI HAR Dataset/test/subject_test.txt")
features <- read.table("UCI HAR Dataset/features.txt")
activity_labels <- read.table("UCI HAR Dataset/activity_labels.txt")
#add variable names to datasets
names(train_set) <- features[,2]
names(test_set) <- features[,2]
#replace code by activity description
test_labels$Description <- activity_labels[match(test_labels[,1],activity_labels[,1]),2]
train_labels$Description <- activity_labels[match(train_labels[,1],activity_labels[,1]),2]
#columns based on mean() or std()
columns <- grep("(mean|std)\\(\\)", features[,2], ignore.case = TRUE, value=TRUE)
#merge sets with labels and select columns
total_test_data <- cbind(test_labels[,2],test_subjects[,1], test_set[,columns])
colnames(total_test_data)[1] <- "Activity"
colnames(total_test_data)[2] <- "Subject"
total_train_data <- cbind(train_labels[,2],train_subjects[,1], train_set[,columns])
colnames(total_train_data)[1] <- "Activity"
colnames(total_train_data)[2] <- "Subject"
#merge both dataset
total_data <- rbind(total_test_data, total_train_data)
#create final dataset with averages
average <- total_data %>% group_by(Activity,Subject) %>% summarize_all(funs(mean))
write.table(average,file ="tidydataset.txt",row.names = FALSE)