SETUP
Begin the setup of environment by setting a directory to work in.
- setwd(“C:/Users/Wajahath/Desktop/Data pre-processing/Assignment 1”) - This sets working directory
Install/Load the required packages.
- library(readr) - This is used for importing data
- library(foreign) - This is used for importing SPSS, SAS, STATA etc data files
- library(gdata) - This is used for manipulating data
READ/IMPORT DATA
Step 1: WR <- read.csv(“worldRecords.csv”) - The file worldRecords which is in csv format is imported into R.
Step 2: head(WR) - The function head() describes the header of the file. On execution, header of WR can be viewed.
WR <- read.csv("worldRecords.csv")
head(WR)
NA
Step 3: WR.df <- data.frame(WR) - The imported file is converted and saved as a data frame.
WR.df <- data.frame(WR)
INSPECT and UNDERSTAND
This step is about analysing and manipulating the data frame with respect to its dimension, data types and structure.
So, Dimensions of the data frame could be obtained by dim(“WR.df”) which gives number of rows and columns as its output data in form of dimension.
dim(WR.df)
[1] 40 6
Data type is the type of data, the variable holds. It could be either of numeric, character, integer, factor, and logical. The following function i,e typef() help us in getting data types of the variable set.
typeof(WR.df)
[1] "list"
attributes(WR.df)
$names
[1] "X" "Distance" "roadORtrack" "Place" "Time" "Date"
$class
[1] "data.frame"
$row.names
[1] 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
typeof("X")
[1] "character"
typeof("Distance")
[1] "character"
typeof("roadORtrack")
[1] "character"
typeof("Place")
[1] "character"
typeof("Time")
[1] "character"
typeof("Date")
[1] "character"
The categorical variables or factor variables has different labels to categorise the things. These labels follow the levels or ordering which could be renamed or rearanged.
rORt <- factor(WR$roadORtrack, labels = c("road", "track"), levels = c("road", "track"))
levels(rORt)
[1] "road" "track"
Column names of a data frame could be obtained by function colnames().
colnames(WR.df)
[1] "X" "Distance" "roadORtrack" "Place" "Time" "Date"
The column name of column number 1 has been assigned as “X” as it was null value. It could be renamed as “Sl.No” by following the syntax below.
colnames(WR.df)[1] <- c("Sl.No")
colnames(WR.df)
[1] "Sl.No" "Distance" "roadORtrack" "Place" "Time" "Date"
SUBSET 1
Subsetting a data frame inclusive of all variables.
WR.sub.df <- WR.df[1:10, ]
WR.sub.df
NA
NA
Conversion of data frame to matrix.
WR.mat <- matrix(WR.sub.df)
WR.mat
[,1]
[1,] Integer,10
[2,] Numeric,10
[3,] factor,10
[4,] factor,10
[5,] Numeric,10
[6,] factor,10
Structure of matrix,
str(WR.mat)
List of 6
$ : int [1:10] 1 2 3 4 5 6 7 8 9 10
$ : num [1:10] 0.1 0.15 0.2 0.3 0.4 0.5 0.6 0.8 1 1.5
$ : Factor w/ 2 levels "road","track": 2 2 2 2 2 2 2 2 2 2
$ : Factor w/ 33 levels "Alphen aan den Rijn",..: 2 9 3 27 31 7 30 13 28 29
$ : num [1:10] 0.163 0.247 0.322 0.514 0.72 ...
$ : Factor w/ 37 levels "1978-10-28","1980-06-07",..: 32 5 14 26 23 7 9 18 24 21
- attr(*, "dim")= int [1:2] 6 1
- A subset of 10 observations inclusive of all variables is created. Further, the subset created is converted into a matrix in second step. Then, the structure of matrix is obtained which yields interesting output. The data type of matrix obtained is list. It is so because, data frames has properties of both list and a matrix. Matrix on other hand should have same class of variables.
SUBSET 2
Subsetting a data frame with only first and last variable.
WR.sub1.df <- WR.df[, c(1,6)]
WR.sub1.df
NA
Saving as R object file.
- save(WR.sub1.df, file = “WR.sub1.df.rdata”)
save(WR.sub1.df, file = "WR.sub1.df.rdata")
- A new subset of data frame is made here. This subset is generated by considering all the observations over 2 variables, precisely over first and last variable(i,e SL.no and Date). This could be attained from WR.sub1.df <- WR.df[, c(1:6)]. Later, this is saved as R object file.
CREATING A NEW DATA FRAME
A new data frame with 2 variables and 4 observations is created here. The variables being Building and Level.
newdf <- data.frame(Building = 80:83, Level = c("A", "B", "C", "D"))
newdf
NA
Structure and levels of ordinal variable could be obtained from doing the following,
str("Building")
chr "Building"
str("Level")
chr "Level"
levels("Level")
NULL
Creating a numeric vector and adding it to data frame using cbind().
Num <- c(1, 2, 3, 4)
newdf1 <- cbind(newdf, Num)
newdf1
NA
Attributes and dimension of the new data frame,
attributes(newdf1)
$names
[1] "Building" "Level" "Num"
$class
[1] "data.frame"
$row.names
[1] 1 2 3 4
dim(newdf1)
[1] 4 3
LS0tDQp0aXRsZTogIk1BVEgyMzQ5IFNlbWVzdGVyIDEsIDIwMTkiDQphdXRob3I6ICJTeWVkIFdhamFoYXRoIC0gczM3NTAwMzkiDQpzdWJ0aXRsZTogQXNzaWdubWVudCAxDQpvdXRwdXQ6IA0KICBodG1sX25vdGVib29rOiBkZWZhdWx0DQotLS0NCg0KIyMgU0VUVVANCg0KQmVnaW4gdGhlIHNldHVwIG9mIGVudmlyb25tZW50IGJ5IHNldHRpbmcgYSBkaXJlY3RvcnkgdG8gd29yayBpbi4NCg0KKiBzZXR3ZCgiQzovVXNlcnMvV2FqYWhhdGgvRGVza3RvcC9EYXRhIHByZS1wcm9jZXNzaW5nL0Fzc2lnbm1lbnQgMSIpIC0gVGhpcyBzZXRzIHdvcmtpbmcgZGlyZWN0b3J5DQoNCkluc3RhbGwvTG9hZCB0aGUgcmVxdWlyZWQgcGFja2FnZXMuDQoNCiogbGlicmFyeShyZWFkcikgLSBUaGlzIGlzIHVzZWQgZm9yIGltcG9ydGluZyBkYXRhDQoqIGxpYnJhcnkoZm9yZWlnbikgLSBUaGlzIGlzIHVzZWQgZm9yIGltcG9ydGluZyBTUFNTLCBTQVMsIFNUQVRBIGV0YyBkYXRhIGZpbGVzDQoqIGxpYnJhcnkoZ2RhdGEpIC0gVGhpcyBpcyB1c2VkIGZvciBtYW5pcHVsYXRpbmcgZGF0YQ0KDQpgYGB7ciBpbmNsdWRlPUZBTFNFLCB3YXJuaW5ncz19DQoNCnNldHdkKCJDOi9Vc2Vycy9XYWphaGF0aC9EZXNrdG9wL0FuYWx5dGljcy9TZW0gMS9EYXRhIHByZS1wcm9jZXNzaW5nL0Fzc2lnbm1lbnQgMSIpICNTZXRzIHRoZSB3b3JraW5nIGRpcmVjdG9yeQ0KDQpsaWJyYXJ5KHJlYWRyKSAgICMgVXNlZCBmb3IgaW1wb3J0aW5nIGRhdGENCmxpYnJhcnkoZm9yZWlnbikgIyBVc2VkIGZvciBpbXBvcnRpbmcgU1BTUywgU0FTLCBTVEFUQSBldGMuIGRhdGEgZmlsZXMNCmxpYnJhcnkoZ2RhdGEpICAgIyBVc2VkIGZvciBtYW5pcHVsYXRpbmcgZGF0YQ0KYGBgDQoNCg0KIyMgREFUQSBERVNDUklQVElPTg0KDQpBcyBwZXIgdGhlIGdpdmVuIHRhc2ssIGZvbGxvd2luZyBpcyB0aGUgb3BlbiBzb3VyY2UgbGluayBmb3IgdGhlIGRhdGEgSSBoYXZlIGNvbnNpZGVyZWQuIA0KDQpodHRwczovL3ZpbmNlbnRhcmVsYnVuZG9jay5naXRodWIuaW8vUmRhdGFzZXRzL2RhdGFzZXRzLmh0bWw/ZmJjbGlkPUl3QVIxekU1N3dxS2VNelBpVGI4dUZGSzBudUlSa21NU1hmY0RGdWlmeVA0QmhDd1R5X2pFZG5jeVZaSWcNCg0KRmlsZSBkb3dubG9hbmQgbGluayAtIGh0dHBzOi8vdmluY2VudGFyZWxidW5kb2NrLmdpdGh1Yi5pby9SZGF0YXNldHMvY3N2L0RBQUcvd29ybGRSZWNvcmRzLmNzdg0KDQpUaGUgZmlsZW5hbWUgaXMgIndvcmxkUmVjb3JkcyIgd2hpY2ggaXMgYSBjc3YgZmlsZS4gVGhlIGRhdGEgaW4gdGhlIGZpbGUgaXMgYWJvdXQgcmVjb3JkcyBjcmVhdGVkIGJ5IGZlbGxvdyByYWNlcnMgaW4gY2FyIHJhY2luZyBvdmVyIHRoZSB5ZWFycyBhdCBkaWZmZXJlbnQgbG9jYXRpb25zLg0KDQpTb21lIG9mIHRoZSBjaGFyYWN0ZXJpc3RpY3Mgb2Ygc2VsZWN0ZWQgZGF0YXNldCBhcmUsDQoNCiogVGhlIGZpbGUgaGFzIDYgZGlmZmVyZW50IGF0dHJpYnV0ZXMgY29uc2lkZXJlZCBvdmVyIDQwIG9ic2VydmF0aW9ucy4NCg0KKiBUaGUgYXR0cmlidXRlICoqcm9hZE9SdHJhY2sqKiBpcyBhIGNhdGVnb3JpY2FsIHZhcmlhYmxlLg0KDQoqIERhdGEgaGFzIGZldyBvdGhlciB2YXJpYWJsZXMgd2l0aCBuYW1lcyAtIERpc3RhbmNlLCBQbGFjZSwgVGltZSBhbmQgRGF0ZS4NCg0KDQojIyBSRUFEL0lNUE9SVCBEQVRBDQoNClN0ZXAgMTogKipXUiA8LSByZWFkLmNzdigid29ybGRSZWNvcmRzLmNzdiIpKiogLSBUaGUgZmlsZSB3b3JsZFJlY29yZHMgd2hpY2ggaXMgaW4gY3N2IGZvcm1hdCBpcyBpbXBvcnRlZCBpbnRvIFIuDQoNClN0ZXAgMjogKipoZWFkKFdSKSoqIC0gVGhlIGZ1bmN0aW9uIGhlYWQoKSBkZXNjcmliZXMgdGhlIGhlYWRlciBvZiB0aGUgZmlsZS4gT24gZXhlY3V0aW9uLCBoZWFkZXIgb2YgV1IgY2FuIGJlIHZpZXdlZC4NCg0KYGBge3J9DQoNCldSIDwtIHJlYWQuY3N2KCJ3b3JsZFJlY29yZHMuY3N2IikNCmhlYWQoV1IpDQoNCmBgYA0KDQpTdGVwIDM6ICoqV1IuZGYgPC0gZGF0YS5mcmFtZShXUikqKiAtIFRoZSBpbXBvcnRlZCBmaWxlIGlzIGNvbnZlcnRlZCBhbmQgc2F2ZWQgYXMgYSBkYXRhIGZyYW1lLiAgIA0KDQpgYGB7cn0NCg0KV1IuZGYgPC0gZGF0YS5mcmFtZShXUikNCg0KYGBgDQoNCg0KIyMgSU5TUEVDVCBhbmQgVU5ERVJTVEFORA0KDQpUaGlzIHN0ZXAgaXMgYWJvdXQgYW5hbHlzaW5nIGFuZCBtYW5pcHVsYXRpbmcgdGhlIGRhdGEgZnJhbWUgd2l0aCByZXNwZWN0IHRvIGl0cyBkaW1lbnNpb24sIGRhdGEgdHlwZXMgYW5kIHN0cnVjdHVyZS4NCg0KU28sIERpbWVuc2lvbnMgb2YgdGhlIGRhdGEgZnJhbWUgY291bGQgYmUgb2J0YWluZWQgYnkgKipkaW0oIldSLmRmIikqKiB3aGljaCBnaXZlcyBudW1iZXIgb2Ygcm93cyBhbmQgY29sdW1ucyBhcyBpdHMgb3V0cHV0IGRhdGEgaW4gZm9ybSBvZiBkaW1lbnNpb24uDQoNCmBgYHtyfQ0KDQpkaW0oV1IuZGYpDQoNCmBgYA0KDQpEYXRhIHR5cGUgaXMgdGhlIHR5cGUgb2YgZGF0YSwgdGhlIHZhcmlhYmxlIGhvbGRzLiBJdCBjb3VsZCBiZSBlaXRoZXIgb2YgbnVtZXJpYywgY2hhcmFjdGVyLCBpbnRlZ2VyLCBmYWN0b3IsIGFuZCBsb2dpY2FsLiBUaGUgZm9sbG93aW5nIGZ1bmN0aW9uIGksZSAqKnR5cGVmKCkqKiBoZWxwIHVzIGluIGdldHRpbmcgZGF0YSB0eXBlcyBvZiB0aGUgdmFyaWFibGUgc2V0Lg0KDQoqIHR5cGVvZihXUi5kZikNCmBgYHtyfQ0KDQp0eXBlb2YoV1IuZGYpDQoNCmBgYA0KKiBhdHRyaWJ1dGVzKFdSLmRmKQ0KYGBge3J9DQoNCmF0dHJpYnV0ZXMoV1IuZGYpDQoNCmBgYA0KKiB0eXBlb2YoIlgiKQ0KYGBge3J9DQoNCnR5cGVvZigiWCIpDQoNCmBgYA0KKiB0eXBlb2YoIkRpc3RhbmNlIikNCmBgYHtyfQ0KDQp0eXBlb2YoIkRpc3RhbmNlIikNCg0KYGBgDQoqIHR5cGVvZigicm9hZE9ydHJhY2siKQ0KYGBge3J9DQoNCnR5cGVvZigicm9hZE9SdHJhY2siKQ0KDQpgYGANCiogdHlwZW9mKCJQbGFjZSIiKQ0KYGBge3J9DQoNCnR5cGVvZigiUGxhY2UiKQ0KDQpgYGANCiogdHlwZW9mKCJUaW1lIikNCmBgYHtyfQ0KDQp0eXBlb2YoIlRpbWUiKQ0KDQpgYGANCiogdHlwZW9mKCJEYXRlIikNCmBgYHtyfQ0KDQp0eXBlb2YoIkRhdGUiKQ0KDQpgYGANCg0KDQpUaGUgY2F0ZWdvcmljYWwgdmFyaWFibGVzIG9yIGZhY3RvciB2YXJpYWJsZXMgaGFzIGRpZmZlcmVudCBsYWJlbHMgdG8gY2F0ZWdvcmlzZSB0aGUgdGhpbmdzLiBUaGVzZSBsYWJlbHMgZm9sbG93IHRoZSBsZXZlbHMgb3Igb3JkZXJpbmcgd2hpY2ggY291bGQgYmUgcmVuYW1lZCBvciByZWFyYW5nZWQuDQoNCmBgYHtyfQ0KDQpyT1J0IDwtIGZhY3RvcihXUiRyb2FkT1J0cmFjaywgbGFiZWxzID0gYygicm9hZCIsICJ0cmFjayIpLCBsZXZlbHMgPSBjKCJyb2FkIiwgInRyYWNrIikpDQpsZXZlbHMock9SdCkgICAgDQoNCmBgYA0KICANCkNvbHVtbiBuYW1lcyBvZiBhIGRhdGEgZnJhbWUgY291bGQgYmUgb2J0YWluZWQgYnkgZnVuY3Rpb24gKipjb2xuYW1lcygpKiouDQoNCiogY29sbmFtZXMoV1IuZGYpDQpgYGB7cn0NCg0KY29sbmFtZXMoV1IuZGYpDQoNCmBgYA0KDQpUaGUgY29sdW1uIG5hbWUgb2YgY29sdW1uIG51bWJlciAxIGhhcyBiZWVuIGFzc2lnbmVkIGFzICoqIlgiKiogYXMgaXQgd2FzIG51bGwgdmFsdWUuIEl0IGNvdWxkIGJlIHJlbmFtZWQgYXMgIlNsLk5vIiBieSBmb2xsb3dpbmcgdGhlIHN5bnRheCBiZWxvdy4NCg0KICAgIA0KYGBge3J9DQoNCmNvbG5hbWVzKFdSLmRmKVsxXSA8LSBjKCJTbC5ObyIpICAgDQpjb2xuYW1lcyhXUi5kZikgICAgDQoNCmBgYA0KDQoNCiMjIFNVQlNFVCAxDQoNClN1YnNldHRpbmcgYSBkYXRhIGZyYW1lIGluY2x1c2l2ZSBvZiBhbGwgdmFyaWFibGVzLg0KDQoqIFdSLnN1Yi5kZiA8LSBXUi5kZlsxOjEwLCBdDQoNCiAgICBXUi5zdWIuZGYNCiAgICANCmBgYHtyfQ0KDQpXUi5zdWIuZGYgPC0gV1IuZGZbMToxMCwgXQ0KV1Iuc3ViLmRmIA0KDQoNCmBgYA0KDQpDb252ZXJzaW9uIG9mIGRhdGEgZnJhbWUgdG8gbWF0cml4Lg0KDQoqIFdSLm1hdCA8LSBtYXRyaXgoV1Iuc3ViLmRmKQ0KDQogICAgV1IubWF0DQogICAgDQpgYGB7cn0NCg0KV1IubWF0IDwtIG1hdHJpeChXUi5zdWIuZGYpDQpXUi5tYXQgICAgDQoNCmBgYA0KDQpTdHJ1Y3R1cmUgb2YgbWF0cml4LA0KYGBge3J9DQpzdHIoV1IubWF0KQ0KDQpgYGANCg0KKiBBIHN1YnNldCBvZiAxMCBvYnNlcnZhdGlvbnMgaW5jbHVzaXZlIG9mIGFsbCB2YXJpYWJsZXMgaXMgY3JlYXRlZC4gRnVydGhlciwgdGhlIHN1YnNldCBjcmVhdGVkIGlzIGNvbnZlcnRlZCBpbnRvIGEgbWF0cml4IGluIHNlY29uZCBzdGVwLiBUaGVuLCB0aGUgc3RydWN0dXJlIG9mIG1hdHJpeCBpcyBvYnRhaW5lZCB3aGljaCB5aWVsZHMgaW50ZXJlc3Rpbmcgb3V0cHV0LiBUaGUgZGF0YSB0eXBlIG9mIG1hdHJpeCBvYnRhaW5lZCBpcyAqKmxpc3QqKi4gSXQgaXMgc28gYmVjYXVzZSwgZGF0YSBmcmFtZXMgaGFzIHByb3BlcnRpZXMgb2YgYm90aCBsaXN0IGFuZCBhIG1hdHJpeC4gTWF0cml4IG9uIG90aGVyIGhhbmQgc2hvdWxkIGhhdmUgc2FtZSBjbGFzcyBvZiB2YXJpYWJsZXMuDQoNCg0KIyMgU1VCU0VUIDINCg0KU3Vic2V0dGluZyBhIGRhdGEgZnJhbWUgd2l0aCBvbmx5IGZpcnN0IGFuZCBsYXN0IHZhcmlhYmxlLg0KDQoqIFdSLnN1YjEuZGYgPC0gV1IuZGZbLCBjKDEsNildDQoNCiAgICBXUi5zdWIxLmRmDQpgYGB7cn0NCg0KV1Iuc3ViMS5kZiA8LSBXUi5kZlssIGMoMSw2KV0NCldSLnN1YjEuZGYNCg0KYGBgDQoNClNhdmluZyBhcyBSIG9iamVjdCBmaWxlLg0KDQoqIHNhdmUoV1Iuc3ViMS5kZiwgZmlsZSA9ICJXUi5zdWIxLmRmLnJkYXRhIikNCmBgYHtyfQ0KDQpzYXZlKFdSLnN1YjEuZGYsIGZpbGUgPSAiV1Iuc3ViMS5kZi5yZGF0YSIpDQoNCmBgYA0KDQoNCiogQSBuZXcgc3Vic2V0IG9mIGRhdGEgZnJhbWUgaXMgbWFkZSBoZXJlLiBUaGlzIHN1YnNldCBpcyBnZW5lcmF0ZWQgYnkgY29uc2lkZXJpbmcgYWxsIHRoZSBvYnNlcnZhdGlvbnMgb3ZlciAyIHZhcmlhYmxlcywgcHJlY2lzZWx5IG92ZXIgZmlyc3QgYW5kIGxhc3QgdmFyaWFibGUoaSxlIFNMLm5vIGFuZCBEYXRlKS4gVGhpcyBjb3VsZCBiZSBhdHRhaW5lZCBmcm9tICoqV1Iuc3ViMS5kZiA8LSBXUi5kZlssIGMoMTo2KV0qKi4gTGF0ZXIsIHRoaXMgaXMgc2F2ZWQgYXMgUiBvYmplY3QgZmlsZS4NCg0KDQoNCg0KDQojIyBDUkVBVElORyBBIE5FVyBEQVRBIEZSQU1FDQoNCkEgbmV3IGRhdGEgZnJhbWUgd2l0aCAyIHZhcmlhYmxlcyBhbmQgNCBvYnNlcnZhdGlvbnMgaXMgY3JlYXRlZCBoZXJlLiBUaGUgdmFyaWFibGVzIGJlaW5nICoqQnVpbGRpbmcgYW5kIExldmVsKiouIA0KDQpgYGB7cn0NCg0KbmV3ZGYgPC0gZGF0YS5mcmFtZShCdWlsZGluZyA9IDgwOjgzLCBMZXZlbCA9IGMoIkEiLCAiQiIsICJDIiwgIkQiKSkNCm5ld2RmDQoNCmBgYA0KICAgIA0KU3RydWN0dXJlIGFuZCBsZXZlbHMgb2Ygb3JkaW5hbCB2YXJpYWJsZSBjb3VsZCBiZSBvYnRhaW5lZCBmcm9tIGRvaW5nIHRoZSBmb2xsb3dpbmcsDQoNCmBgYHtyfQ0KDQpzdHIoIkJ1aWxkaW5nIikNCg0KYGBgDQoNCmBgYHtyfQ0KDQpzdHIoIkxldmVsIikNCg0KYGBgDQoNCmBgYHtyfQ0KDQpsZXZlbHMoIkxldmVsIikNCg0KYGBgDQoNCkNyZWF0aW5nIGEgbnVtZXJpYyB2ZWN0b3IgYW5kIGFkZGluZyBpdCB0byBkYXRhIGZyYW1lIHVzaW5nIGNiaW5kKCkuDQoNCiogTnVtIDwtIGMoMSwgMiwgMywgNCkNCg0KICAgIG5ld2RmMSA8LSBjYmluZChuZXdkZiwgTnVtKQ0KICAgIA0KICAgIG5ld2RmMQ0KYGBge3J9DQoNCk51bSA8LSBjKDEsIDIsIDMsIDQpDQpuZXdkZjEgPC0gY2JpbmQobmV3ZGYsIE51bSkNCm5ld2RmMQ0KDQpgYGANCg0KQXR0cmlidXRlcyBhbmQgZGltZW5zaW9uIG9mIHRoZSBuZXcgZGF0YSBmcmFtZSwNCg0KDQpgYGB7cn0NCg0KYXR0cmlidXRlcyhuZXdkZjEpDQoNCmBgYA0KDQoNCmBgYHtyfQ0KDQpkaW0obmV3ZGYxKQ0KDQpgYGANCg0KDQoNCg0KPGJyPg0KPGJyPg0KPGJyPg0K