#Initialization 
data(mtcars)
View(mtcars)

Now we are going to see a summary of the data

summary(mtcars)
      mpg             cyl             disp             hp             drat             wt             qsec      
 Min.   :10.40   Min.   :4.000   Min.   : 71.1   Min.   : 52.0   Min.   :2.760   Min.   :1.513   Min.   :14.50  
 1st Qu.:15.43   1st Qu.:4.000   1st Qu.:120.8   1st Qu.: 96.5   1st Qu.:3.080   1st Qu.:2.581   1st Qu.:16.89  
 Median :19.20   Median :6.000   Median :196.3   Median :123.0   Median :3.695   Median :3.325   Median :17.71  
 Mean   :20.09   Mean   :6.188   Mean   :230.7   Mean   :146.7   Mean   :3.597   Mean   :3.217   Mean   :17.85  
 3rd Qu.:22.80   3rd Qu.:8.000   3rd Qu.:326.0   3rd Qu.:180.0   3rd Qu.:3.920   3rd Qu.:3.610   3rd Qu.:18.90  
 Max.   :33.90   Max.   :8.000   Max.   :472.0   Max.   :335.0   Max.   :4.930   Max.   :5.424   Max.   :22.90  
       vs               am              gear            carb      
 Min.   :0.0000   Min.   :0.0000   Min.   :3.000   Min.   :1.000  
 1st Qu.:0.0000   1st Qu.:0.0000   1st Qu.:3.000   1st Qu.:2.000  
 Median :0.0000   Median :0.0000   Median :4.000   Median :2.000  
 Mean   :0.4375   Mean   :0.4062   Mean   :3.688   Mean   :2.812  
 3rd Qu.:1.0000   3rd Qu.:1.0000   3rd Qu.:4.000   3rd Qu.:4.000  
 Max.   :1.0000   Max.   :1.0000   Max.   :5.000   Max.   :8.000  

Note that the ‘mtcars’ object is of the ‘data frame’ type. Sometime we will need to convert our data into data frame type for better manipulation using the as.data.frame () function.

If I want to apply an specific function to the data frame instead of all the statistics on summary() we can use the sapply () function

sapply(mtcars, sd)
        mpg         cyl        disp          hp        drat          wt        qsec          vs          am        gear 
  6.0269481   1.7859216 123.9386938  68.5628685   0.5346787   0.9784574   1.7869432   0.5040161   0.4989909   0.7378041 
       carb 
  1.6152000 

As seen, here we have the standard deviation of each one of the groups (mpg, cyl, disp, hp, etc)

What if we want to run a series of statistics that are not built in R? We can create our own functions

#defining a new function, that calculates the sd and the median of x and returns it as a list  

MySummary <- function(x)
{
  summaryList <- list(sd(x), median(x))
  names(summaryList) <- c("SD", "Median")
  return(summaryList)
}

   sapply(mtcars, MySummary)
       mpg      cyl      disp     hp       drat      wt        qsec     vs        am        gear      carb  
SD     6.026948 1.785922 123.9387 68.56287 0.5346787 0.9784574 1.786943 0.5040161 0.4989909 0.7378041 1.6152
Median 19.2     6        196.3    123      3.695     3.325     17.71    0         0         4         2     
LS0tDQp0aXRsZTogIlNhcHBseSBGdW5jdGlvbiBmb3IgVmVjdG9yIGFuZCBMaXN0IFByb2Nlc3NpbmciDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KYGBge3J9DQojSW5pdGlhbGl6YXRpb24gDQpkYXRhKG10Y2FycykNClZpZXcobXRjYXJzKQ0KDQpgYGANCk5vdyB3ZSBhcmUgZ29pbmcgdG8gc2VlIGEgc3VtbWFyeSBvZiB0aGUgZGF0YSANCmBgYHtyfQ0Kc3VtbWFyeShtdGNhcnMpDQpgYGANCk5vdGUgdGhhdCB0aGUgJ210Y2Fycycgb2JqZWN0IGlzIG9mIHRoZSAnZGF0YSBmcmFtZScgdHlwZS4gU29tZXRpbWUgd2Ugd2lsbCBuZWVkIHRvIGNvbnZlcnQgb3VyIGRhdGEgaW50byBkYXRhIGZyYW1lIHR5cGUgZm9yDQpiZXR0ZXIgbWFuaXB1bGF0aW9uIHVzaW5nIHRoZSBhcy5kYXRhLmZyYW1lICgpIGZ1bmN0aW9uLiANCg0KSWYgSSB3YW50IHRvIGFwcGx5IGFuIHNwZWNpZmljIGZ1bmN0aW9uIHRvIHRoZSBkYXRhIGZyYW1lIGluc3RlYWQgb2YgYWxsIHRoZSBzdGF0aXN0aWNzIG9uIHN1bW1hcnkoKQ0Kd2UgY2FuIHVzZSB0aGUgc2FwcGx5ICgpIGZ1bmN0aW9uIA0KYGBge3J9DQpzYXBwbHkobXRjYXJzLCBzZCkNCmBgYA0KQXMgc2VlbiwgaGVyZSB3ZSBoYXZlIHRoZSBzdGFuZGFyZCBkZXZpYXRpb24gb2YgZWFjaCBvbmUgb2YgdGhlIGdyb3VwcyAobXBnLCBjeWwsIGRpc3AsIGhwLCBldGMpDQoNCldoYXQgaWYgd2Ugd2FudCB0byBydW4gYSBzZXJpZXMgb2Ygc3RhdGlzdGljcyB0aGF0IGFyZSBub3QgYnVpbHQgaW4gUj8gDQpXZSBjYW4gY3JlYXRlIG91ciBvd24gZnVuY3Rpb25zIA0KDQpgYGB7cn0NCiNkZWZpbmluZyBhIG5ldyBmdW5jdGlvbiwgdGhhdCBjYWxjdWxhdGVzIHRoZSBzZCBhbmQgdGhlIG1lZGlhbiBvZiB4IGFuZCByZXR1cm5zIGl0IGFzIGEgbGlzdCAgDQoNCk15U3VtbWFyeSA8LSBmdW5jdGlvbih4KQ0Kew0KICBzdW1tYXJ5TGlzdCA8LSBsaXN0KHNkKHgpLCBtZWRpYW4oeCkpDQogIG5hbWVzKHN1bW1hcnlMaXN0KSA8LSBjKCJTRCIsICJNZWRpYW4iKQ0KICByZXR1cm4oc3VtbWFyeUxpc3QpDQp9DQoNCiAgIHNhcHBseShtdGNhcnMsIE15U3VtbWFyeSkNCmBgYA0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0K