This code book summarizes the resulting data fields in mean_data.txt.
run_analysis.R performs the tasks needed by our lectures:
• 0. Loads library and information in data.frames from train/test/activity/features .txt files
• 1. Merges train and test data via rbind.
• 2. Extracts only the measurements on the mean and standard deviation for each measurement by creating a subsetting logical vector with features positions in features.txt
• 3. Labels activity in the activity type (y’datas) data
• 4. Merges processed subject, activity and X-data in one dataframe. Renames the columns in this dataframe.
• 5. Generates a new dataset with average measures for each subject and activity type. Melt and dcast from “reshape2” library is used.
Output is saved as mean_data.txt.
The experiments have been carried out with a group of 30 volunteers within an age bracket of 19-48 years. Each person performed six activities (WALKING, WALKING_UPSTAIRS, WALKING_DOWNSTAIRS, SITTING, STANDING, LAYING) wearing a smartphone (Samsung Galaxy S II) on the waist. Using its embedded accelerometer and gyroscope, we captured 3-axial linear acceleration and 3-axial angular velocity at a constant rate of 50Hz. The experiments have been video-recorded to label the data manually. The obtained dataset has been randomly partitioned into two sets, where 70% of the volunteers was selected for generating the training data and 30% the test data.
The sensor signals (accelerometer and gyroscope) were pre-processed by applying noise filters and then sampled in fixed-width sliding windows of 2.56 sec and 50% overlap (128 readings/window). The sensor acceleration signal, which has gravitational and body motion components, was separated using a Butterworth low-pass filter into body acceleration and gravity. The gravitational force is assumed to have only low frequency components, therefore a filter with 0.3 Hz cutoff frequency was used. From each window, a vector of features was obtained by calculating variables from the time and frequency domain. See 'features_info.txt' for more details.
- Triaxial acceleration from the accelerometer (total acceleration) and the estimated body acceleration.
- Triaxial Angular velocity from the gyroscope.
- A 561-feature vector with time and frequency domain variables.
- Its activity label.
- An identifier of the subject who carried out the experiment.
-
'README.txt'
-
'features_info.txt': Shows information about the variables used on the feature vector.
-
'features.txt': List of all features.
-
'activity_labels.txt': Links the class labels with their activity name.
-
'train/X_train.txt': Training set.
-
'train/y_train.txt': Training labels.
-
'test/X_test.txt': Test set.
-
'test/y_test.txt': Test labels.
The following files are available for the train and test data. Their descriptions are equivalent.
-
'train/subject_train.txt': Each row identifies the subject who performed the activity for each window sample. Its range is from 1 to 30.
-
'train/Inertial Signals/total_acc_x_train.txt': The acceleration signal from the smartphone accelerometer X axis in standard gravity units 'g'. Every row shows a 128 element vector. The same description applies for the 'total_acc_x_train.txt' and 'total_acc_z_train.txt' files for the Y and Z axis.
-
'train/Inertial Signals/body_acc_x_train.txt': The body acceleration signal obtained by subtracting the gravity from the total acceleration.
-
'train/Inertial Signals/body_gyro_x_train.txt': The angular velocity vector measured by the gyroscope for each window sample. The units are radians/second.
- Features are normalized and bounded within [-1,1].
- Each feature vector is a row on the text file.
subject_id- The ID of the test subjectactivity_type- The type of activity performed when the corresponding measurements were taken
Measurements (for units of measurements please look up to "Raw files informations and units" section)
tBodyAcc-mean()-XtBodyAcc-mean()-YtBodyAcc-mean()-ZtGravityAcc-mean()-XtGravityAcc-mean()-YtGravityAcc-mean()-ZtBodyAccJerk-mean()-XtBodyAccJerk-mean()-YtBodyAccJerk-mean()-ZtBodyGyro-mean()-XtBodyGyro-mean()-YtBodyGyro-mean()-ZtBodyGyroJerk-mean()-XtBodyGyroJerk-mean()-YtBodyGyroJerk-mean()-ZtBodyAccMag-mean()tGravityAccMag-mean()tBodyAccJerkMag-mean()tBodyGyroMag-mean()tBodyGyroJerkMag-mean()fBodyAcc-mean()-XfBodyAcc-mean()-YfBodyAcc-mean()-ZfBodyAcc-meanFreq()-XfBodyAcc-meanFreq()-YfBodyAcc-meanFreq()-ZfBodyAccJerk-mean()-XfBodyAccJerk-mean()-YfBodyAccJerk-mean()-ZfBodyAccJerk-meanFreq()-XfBodyAccJerk-meanFreq()-YfBodyAccJerk-meanFreq()-ZfBodyGyro-mean()-XfBodyGyro-mean()-YfBodyGyro-mean()-ZfBodyGyro-meanFreq()-XfBodyGyro-meanFreq()-YfBodyGyro-meanFreq()-ZfBodyAccMag-mean()fBodyAccMag-meanFreq()fBodyBodyAccJerkMag-mean()fBodyBodyAccJerkMag-meanFreq()fBodyBodyGyroMag-mean()fBodyBodyGyroMag-meanFreq()fBodyBodyGyroJerkMag-mean()fBodyBodyGyroJerkMag-meanFreq()tBodyAcc-std()-XtBodyAcc-std()-YtBodyAcc-std()-ZtGravityAcc-std()-XtGravityAcc-std()-YtGravityAcc-std()-ZtBodyAccJerk-std()-XtBodyAccJerk-std()-YtBodyAccJerk-std()-ZtBodyGyro-std()-XtBodyGyro-std()-YtBodyGyro-std()-ZtBodyGyroJerk-std()-XtBodyGyroJerk-std()-YtBodyGyroJerk-std()-ZtBodyAccMag-std()tGravityAccMag-std()tBodyAccJerkMag-std()tBodyGyroMag-std()tBodyGyroJerkMag-std()fBodyAcc-std()-XfBodyAcc-std()-YfBodyAcc-std()-ZfBodyAccJerk-std()-XfBodyAccJerk-std()-YfBodyAccJerk-std()-ZfBodyGyro-std()-XfBodyGyro-std()-YfBodyGyro-std()-ZfBodyAccMag-std()fBodyBodyAccJerkMag-std()fBodyBodyGyroMag-std()fBodyBodyGyroJerkMag-std()
WALKING(value1): subject was walking during the testWALKING_UPSTAIRS(value2): subject was walking up a staircase during the testWALKING_DOWNSTAIRS(value3): subject was walking down a staircase during the testSITTING(value4): subject was sitting during the testSTANDING(value5): subject was standing during the testLAYING(value6): subject was laying down during the test