This bike dataset analyzes the rentals of bikes during “High” wind threat conditions and during the seasons winter and spring.

Import the data

bike.csv <- read.csv("bike_sharing_data.csv")

bike.csv2 <- read.table("bike_sharing_data.csv", sep=",", header=TRUE)

bike.txt <- read.table("bike_sharing_data.txt", sep="\t", header=TRUE)

bike.txt2 <- read.delim("bike_sharing_data.txt")

Preview the data

head(bike.csv)
tail(bike.csv)

Describe the data structure and type

str(bike.csv)
'data.frame':   17379 obs. of  13 variables:
 $ datetime  : chr  "1/1/2011 0:00" "1/1/2011 1:00" "1/1/2011 2:00" "1/1/2011 3:00" ...
 $ season    : int  1 1 1 1 1 1 1 1 1 1 ...
 $ holiday   : int  0 0 0 0 0 0 0 0 0 0 ...
 $ workingday: int  0 0 0 0 0 0 0 0 0 0 ...
 $ weather   : int  1 1 1 1 1 2 1 1 1 1 ...
 $ temp      : num  9.84 9.02 9.02 9.84 9.84 ...
 $ atemp     : num  14.4 13.6 13.6 14.4 14.4 ...
 $ humidity  : chr  "81" "80" "80" "75" ...
 $ windspeed : num  0 0 0 0 0 ...
 $ casual    : int  3 8 5 3 0 0 2 1 1 8 ...
 $ registered: int  13 32 27 10 1 1 0 2 7 6 ...
 $ count     : int  16 40 32 13 1 1 2 3 8 14 ...
 $ sources   : chr  "ad campaign" "www.yahoo.com" "www.google.fi" "AD campaign" ...
summary(bike.csv)
   datetime             season         holiday          workingday        weather     
 Length:17379       Min.   :1.000   Min.   :0.00000   Min.   :0.0000   Min.   :1.000  
 Class :character   1st Qu.:2.000   1st Qu.:0.00000   1st Qu.:0.0000   1st Qu.:1.000  
 Mode  :character   Median :3.000   Median :0.00000   Median :1.0000   Median :1.000  
                    Mean   :2.502   Mean   :0.02877   Mean   :0.6827   Mean   :1.425  
                    3rd Qu.:3.000   3rd Qu.:0.00000   3rd Qu.:1.0000   3rd Qu.:2.000  
                    Max.   :4.000   Max.   :1.00000   Max.   :1.0000   Max.   :4.000  
      temp           atemp         humidity           windspeed          casual      
 Min.   : 0.82   Min.   : 0.00   Length:17379       Min.   : 0.000   Min.   :  0.00  
 1st Qu.:13.94   1st Qu.:16.66   Class :character   1st Qu.: 7.002   1st Qu.:  4.00  
 Median :20.50   Median :24.24   Mode  :character   Median :12.998   Median : 16.00  
 Mean   :20.38   Mean   :23.79                      Mean   :12.737   Mean   : 34.48  
 3rd Qu.:27.06   3rd Qu.:31.06                      3rd Qu.:16.998   3rd Qu.: 46.00  
 Max.   :41.00   Max.   :50.00                      Max.   :56.997   Max.   :367.00  
   registered        count       sources         
 Min.   :  0.0   Min.   :  1   Length:17379      
 1st Qu.: 36.0   1st Qu.: 42   Class :character  
 Median :116.0   Median :141   Mode  :character  
 Mean   :152.5   Mean   :187                     
 3rd Qu.:217.0   3rd Qu.:277                     
 Max.   :886.0   Max.   :977                     

Select the data using indexing

# select 6251st row and the 2nd column
bike.csv[6251,2]
[1] 4

Create a contingency table

# finding the amount of observations that have the season was winter
sort(table(bike.csv$season))

   4    1    2    3 
4232 4242 4409 4496 

Subset the data using subset()

# find out all observations of which wind speed >= 40 during winter or spring
subset(bike.csv, 
       (windspeed >= 40) & (season %in% c(1, 4)) # show the first few rows only to save space
)
LS0tCnRpdGxlOiAiRXh0cmFjdGluZyBEYXRhIGZyb20gTG9jYWwgRmlsZXMgLSBKZW5uYSBTZW1wa293c2tpIgpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sKLS0tCgojIyMjIFRoaXMgYmlrZSBkYXRhc2V0IGFuYWx5emVzIHRoZSByZW50YWxzIG9mIGJpa2VzIGR1cmluZyAiSGlnaCIgd2luZCB0aHJlYXQgY29uZGl0aW9ucyBhbmQgZHVyaW5nIHRoZSBzZWFzb25zIHdpbnRlciBhbmQgc3ByaW5nLgoKIyMgSW1wb3J0IHRoZSBkYXRhCmBgYHtyfQpiaWtlLmNzdiA8LSByZWFkLmNzdigiYmlrZV9zaGFyaW5nX2RhdGEuY3N2IikKCmJpa2UuY3N2MiA8LSByZWFkLnRhYmxlKCJiaWtlX3NoYXJpbmdfZGF0YS5jc3YiLCBzZXA9IiwiLCBoZWFkZXI9VFJVRSkKCmJpa2UudHh0IDwtIHJlYWQudGFibGUoImJpa2Vfc2hhcmluZ19kYXRhLnR4dCIsIHNlcD0iXHQiLCBoZWFkZXI9VFJVRSkKCmJpa2UudHh0MiA8LSByZWFkLmRlbGltKCJiaWtlX3NoYXJpbmdfZGF0YS50eHQiKQpgYGAKCiMjIFByZXZpZXcgdGhlIGRhdGEKYGBge3J9CmhlYWQoYmlrZS5jc3YpCmBgYApgYGB7cn0KdGFpbChiaWtlLmNzdikKYGBgCgojIyAgRGVzY3JpYmUgdGhlIGRhdGEgc3RydWN0dXJlIGFuZCB0eXBlCmBgYHtyfQpzdHIoYmlrZS5jc3YpCmBgYAoKYGBge3J9CnN1bW1hcnkoYmlrZS5jc3YpCmBgYAoKIyMgU2VsZWN0IHRoZSBkYXRhIHVzaW5nIGluZGV4aW5nCmBgYHtyfQojIHNlbGVjdCA2MjUxc3Qgcm93IGFuZCB0aGUgMm5kIGNvbHVtbgpiaWtlLmNzdls2MjUxLDJdCmBgYAoKIyMgQ3JlYXRlIGEgY29udGluZ2VuY3kgdGFibGUKYGBge3J9CiMgZmluZGluZyB0aGUgYW1vdW50IG9mIG9ic2VydmF0aW9ucyB0aGF0IGhhdmUgdGhlIHNlYXNvbiB3YXMgd2ludGVyCnNvcnQodGFibGUoYmlrZS5jc3Ykc2Vhc29uKSkKYGBgCgojIyBTdWJzZXQgdGhlIGRhdGEgdXNpbmcgc3Vic2V0KCkKYGBge3J9CiMgZmluZCBvdXQgYWxsIG9ic2VydmF0aW9ucyBvZiB3aGljaCB3aW5kIHNwZWVkID49IDQwIGR1cmluZyB3aW50ZXIgb3Igc3ByaW5nCnN1YnNldChiaWtlLmNzdiwgCiAgICAgICAod2luZHNwZWVkID49IDQwKSAmIChzZWFzb24gJWluJSBjKDEsIDQpKSAjIHNob3cgdGhlIGZpcnN0IGZldyByb3dzIG9ubHkgdG8gc2F2ZSBzcGFjZQopCmBgYAoK