manuelcastiblan / Getting-And-Cleaning-Data

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Getting-And-Cleaning-Data

##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

A continuación se procede a leer los datos de los archivos

Se leen los archivos de "Activity"

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)

Se leen los archivos de "Subject"

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)

Se miran las propiedades de las variables

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.

Los tablas de datos se concatenan por medio de las filas

dataSubject <- rbind(dataSubjectTrain, dataSubjectTest) dataActivity<- rbind(dataActivityTrain, dataActivityTest) dataFeatures<- rbind(dataFeaturesTrain, dataFeaturesTest)

Se establecen los nombres de las variables

names(dataSubject)<-c("subject") names(dataActivity)<- c("activity") dataFeaturesNames <- read.table(file.path(path_rf, "features.txt"),head=FALSE) names(dataFeatures)<- dataFeaturesNames$V2

Ahora se combinan los datos en las columnas, para obtener un marco integrado.

dataCombine <- cbind(dataSubject, dataActivity) Data <- cbind(dataFeatures, dataCombine)

Ahora vamos a exraer los resultados de la media y la desviación estandar para cada dato.

subdataFeaturesNames<-dataFeaturesNames$V2[grep("mean\(\)|std\(\)", dataFeaturesNames$V2)] selectedNames<-c(as.character(subdataFeaturesNames), "subject", "activity" ) Data<-subset(Data,select=selectedNames)

Se comprueba la estructura en el marco de datos

str(Data)

Ahora se nombran las actividades que se encuentran en el conjunto de datos

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))

Se comprueba

names(Data)

Se crea un nuevo conjunto de datos ordenados e independientes

library(plyr); Data2<-aggregate(. ~subject + activity, Data, mean) Data2<-Data2[order(Data2$subject,Data2$activity),] write.table(Data2, file = "tidydata.txt",row.name=FALSE)

About


Languages

Language:R 100.0%