##Recolección de Datos
##Descargar los datos y guardartos
if(!file.exists("./data")){dir.create("./data")} fileUrl <- "https://d396qusza40orc.cloudfront.net/getdata%2Fprojectfiles%2FUCI%20HAR%20Dataset.zip" download.file(fileUrl,destfile="./data/Dataset.zip",method="curl")
##El archivo se desgarga como un zip, a continuación se usa una función para descomprimirlo
unzip(zipfile="./data/Dataset.zip",exdir="./data")
##Ahora los archivos descomprimidos se encuentran en la carpeta UCI HAR Dataset, a continuación se obtendrá una lista de los archivos
path_rf <- file.path("./data" , "UCI HAR Dataset") files<-list.files(path_rf, recursive=TRUE) files
dataActivityTest <- read.table(file.path(path_rf, "test" , "Y_test.txt" ),header = FALSE) dataActivityTrain <- read.table(file.path(path_rf, "train", "Y_train.txt"),header = FALSE)
dataSubjectTrain <- read.table(file.path(path_rf, "train", "subject_train.txt"),header = FALSE) dataSubjectTest <- read.table(file.path(path_rf, "test" , "subject_test.txt"),header = FALSE)
##Se leen los archivos de "Features" dataFeaturesTest <- read.table(file.path(path_rf, "test" , "X_test.txt" ),header = FALSE) dataFeaturesTrain <- read.table(file.path(path_rf, "train", "X_train.txt"),header = FALSE)
str(dataActivityTest) str(dataActivityTrain) str(dataSubjectTrain) str(dataSubjectTest) str(dataFeaturesTest) str(dataFeaturesTrain)
Ahora se deben fusionar los conjuntos de datos de entrenamiento y de prueba, con el proposito de crear un conjunto de datos unificado.
dataSubject <- rbind(dataSubjectTrain, dataSubjectTest) dataActivity<- rbind(dataActivityTrain, dataActivityTest) dataFeatures<- rbind(dataFeaturesTrain, dataFeaturesTest)
names(dataSubject)<-c("subject") names(dataActivity)<- c("activity") dataFeaturesNames <- read.table(file.path(path_rf, "features.txt"),head=FALSE) names(dataFeatures)<- dataFeaturesNames$V2
dataCombine <- cbind(dataSubject, dataActivity) Data <- cbind(dataFeatures, dataCombine)
subdataFeaturesNames<-dataFeaturesNames$V2[grep("mean\(\)|std\(\)", dataFeaturesNames$V2)] selectedNames<-c(as.character(subdataFeaturesNames), "subject", "activity" ) Data<-subset(Data,select=selectedNames)
str(Data)
activityLabels <- read.table(file.path(path_rf, "activity_labels.txt"),header = FALSE) head(Data$activity,30) names(Data)<-gsub("^t", "Time", names(Data)) names(Data)<-gsub("^f", "Frequency", names(Data)) names(Data)<-gsub("Acc", "Accelerometer", names(Data)) names(Data)<-gsub("Gyro", "Gyroscope", names(Data)) names(Data)<-gsub("Mag", "Magnitude", names(Data)) names(Data)<-gsub("BodyBody", "Body", names(Data))
names(Data)
library(plyr); Data2<-aggregate(. ~subject + activity, Data, mean) Data2<-Data2[order(Data2$subject,Data2$activity),] write.table(Data2, file = "tidydata.txt",row.name=FALSE)