What a Code Book should contain 1) information about variables in the data set not contained in the tidy data 2) Information about the summary choices made 3) Information about the experimental study design used

A common format: Word/text file There should be a section called “Study Design” that has a through description of how you collected data.

The instruction list - Ideally in R script - The input is raw data - The output is the processed, tidy data - There are no parameters to the script

Get/set working directory -In Mac OS:

setwd("./data")

-In Windows

setwd("C:\\Users\\Andrew\\Downloads")

Checking for and creating directories

if (!file.exists("data")){
    dir.create("data")
}

Getting data from the Internet

download.file(url = , destfile = , )

An example of downloading datat form baltimorecity website

list.files("./data")
[1] "cameras.csv"

How to open local file - I downloaded the Baltimore fixed camera dataset mannually and save it in the file in “./data/Fixed_Speed_Cameras.csv”

Now try to read it!

Some important parameters quote - sometimes we should set quoted="" na.strings - set the character that repressent a missing value nrows - how many rows to read skip - number of lines to skip befere starting to read

read Excel files

library(xlsx)
camrraData2 <- read.xlsx("./data/xxx.xlsx",sheetIndex = 1, header = TRUE)

Reading XML

1)Tags, elements and attributes Tages - Start tages
  - Empty tags<line-break />
Elements - Hello, world Attributes are componets of the label - alt=“instructor”/> - Connect A to B.

Get the items on the menu and prices

xpathApply(rootNode"//name",xmlValue)
xpathApply(rootNode"//price",xmlValue)
doc <- htmlTreeParse(myUrl, useInternal = TRUE)
Warning: XML content does not seem to be XML: ''

Reading Javascript Object Notation(JSON) - Lightweight data storage

jsonDATA$owner$login
[1] "Zixuan-YU" "Zixuan-YU" "Zixuan-YU" "Zixuan-YU"

Writing data frames to JSON

cat(myjson)
[
  {
    "Sepal.Length": 5.1,
    "Sepal.Width": 3.5,
    "Petal.Length": 1.4,
    "Petal.Width": 0.2,
    "Species": "setosa"
  },
  {
    "Sepal.Length": 4.9,
    "Sepal.Width": 3,
    "Petal.Length": 1.4,
    "Petal.Width": 0.2,
    "Species": "setosa"
  },
  {
    "Sepal.Length": 4.7,
    "Sepal.Width": 3.2,
    "Petal.Length": 1.3,
    "Petal.Width": 0.2,
    "Species": "setosa"
  },
  {
    "Sepal.Length": 4.6,
    "Sepal.Width": 3.1,
    "Petal.Length": 1.5,
    "Petal.Width": 0.2,
    "Species": "setosa"
  },
  {
    "Sepal.Length": 5,
    "Sepal.Width": 3.6,
    "Petal.Length": 1.4,
    "Petal.Width": 0.2,
    "Species": "setosa"
  },
  {
    "Sepal.Length": 5.4,
    "Sepal.Width": 3.9,
    "Petal.Length": 1.7,
    "Petal.Width": 0.4,
    "Species": "setosa"
  },
  {
    "Sepal.Length": 4.6,
    "Sepal.Width": 3.4,
    "Petal.Length": 1.4,
    "Petal.Width": 0.3,
    "Species": "setosa"
  },
  {
    "Sepal.Length": 5,
    "Sepal.Width": 3.4,
    "Petal.Length": 1.5,
    "Petal.Width": 0.2,
    "Species": "setosa"
  },
  {
    "Sepal.Length": 4.4,
    "Sepal.Width": 2.9,
    "Petal.Length": 1.4,
    "Petal.Width": 0.2,
    "Species": "setosa"
  },
  {
    "Sepal.Length": 4.9,
    "Sepal.Width": 3.1,
    "Petal.Length": 1.5,
    "Petal.Width": 0.1,
    "Species": "setosa"
  },
  {
    "Sepal.Length": 5.4,
    "Sepal.Width": 3.7,
    "Petal.Length": 1.5,
    "Petal.Width": 0.2,
    "Species": "setosa"
  },
  {
    "Sepal.Length": 4.8,
    "Sepal.Width": 3.4,
    "Petal.Length": 1.6,
    "Petal.Width": 0.2,
    "Species": "setosa"
  },
  {
    "Sepal.Length": 4.8,
    "Sepal.Width": 3,
    "Petal.Length": 1.4,
    "Petal.Width": 0.1,
    "Species": "setosa"
  },
  {
    "Sepal.Length": 4.3,
    "Sepal.Width": 3,
    "Petal.Length": 1.1,
    "Petal.Width": 0.1,
    "Species": "setosa"
  },
  {
    "Sepal.Length": 5.8,
    "Sepal.Width": 4,
    "Petal.Length": 1.2,
    "Petal.Width": 0.2,
    "Species": "setosa"
  },
  {
    "Sepal.Length": 5.7,
    "Sepal.Width": 4.4,
    "Petal.Length": 1.5,
    "Petal.Width": 0.4,
    "Species": "setosa"
  },
  {
    "Sepal.Length": 5.4,
    "Sepal.Width": 3.9,
    "Petal.Length": 1.3,
    "Petal.Width": 0.4,
    "Species": "setosa"
  },
  {
    "Sepal.Length": 5.1,
    "Sepal.Width": 3.5,
    "Petal.Length": 1.4,
    "Petal.Width": 0.3,
    "Species": "setosa"
  },
  {
    "Sepal.Length": 5.7,
    "Sepal.Width": 3.8,
    "Petal.Length": 1.7,
    "Petal.Width": 0.3,
    "Species": "setosa"
  },
  {
    "Sepal.Length": 5.1,
    "Sepal.Width": 3.8,
    "Petal.Length": 1.5,
    "Petal.Width": 0.3,
    "Species": "setosa"
  },
  {
    "Sepal.Length": 5.4,
    "Sepal.Width": 3.4,
    "Petal.Length": 1.7,
    "Petal.Width": 0.2,
    "Species": "setosa"
  },
  {
    "Sepal.Length": 5.1,
    "Sepal.Width": 3.7,
    "Petal.Length": 1.5,
    "Petal.Width": 0.4,
    "Species": "setosa"
  },
  {
    "Sepal.Length": 4.6,
    "Sepal.Width": 3.6,
    "Petal.Length": 1,
    "Petal.Width": 0.2,
    "Species": "setosa"
  },
  {
    "Sepal.Length": 5.1,
    "Sepal.Width": 3.3,
    "Petal.Length": 1.7,
    "Petal.Width": 0.5,
    "Species": "setosa"
  },
  {
    "Sepal.Length": 4.8,
    "Sepal.Width": 3.4,
    "Petal.Length": 1.9,
    "Petal.Width": 0.2,
    "Species": "setosa"
  },
  {
    "Sepal.Length": 5,
    "Sepal.Width": 3,
    "Petal.Length": 1.6,
    "Petal.Width": 0.2,
    "Species": "setosa"
  },
  {
    "Sepal.Length": 5,
    "Sepal.Width": 3.4,
    "Petal.Length": 1.6,
    "Petal.Width": 0.4,
    "Species": "setosa"
  },
  {
    "Sepal.Length": 5.2,
    "Sepal.Width": 3.5,
    "Petal.Length": 1.5,
    "Petal.Width": 0.2,
    "Species": "setosa"
  },
  {
    "Sepal.Length": 5.2,
    "Sepal.Width": 3.4,
    "Petal.Length": 1.4,
    "Petal.Width": 0.2,
    "Species": "setosa"
  },
  {
    "Sepal.Length": 4.7,
    "Sepal.Width": 3.2,
    "Petal.Length": 1.6,
    "Petal.Width": 0.2,
    "Species": "setosa"
  },
  {
    "Sepal.Length": 4.8,
    "Sepal.Width": 3.1,
    "Petal.Length": 1.6,
    "Petal.Width": 0.2,
    "Species": "setosa"
  },
  {
    "Sepal.Length": 5.4,
    "Sepal.Width": 3.4,
    "Petal.Length": 1.5,
    "Petal.Width": 0.4,
    "Species": "setosa"
  },
  {
    "Sepal.Length": 5.2,
    "Sepal.Width": 4.1,
    "Petal.Length": 1.5,
    "Petal.Width": 0.1,
    "Species": "setosa"
  },
  {
    "Sepal.Length": 5.5,
    "Sepal.Width": 4.2,
    "Petal.Length": 1.4,
    "Petal.Width": 0.2,
    "Species": "setosa"
  },
  {
    "Sepal.Length": 4.9,
    "Sepal.Width": 3.1,
    "Petal.Length": 1.5,
    "Petal.Width": 0.2,
    "Species": "setosa"
  },
  {
    "Sepal.Length": 5,
    "Sepal.Width": 3.2,
    "Petal.Length": 1.2,
    "Petal.Width": 0.2,
    "Species": "setosa"
  },
  {
    "Sepal.Length": 5.5,
    "Sepal.Width": 3.5,
    "Petal.Length": 1.3,
    "Petal.Width": 0.2,
    "Species": "setosa"
  },
  {
    "Sepal.Length": 4.9,
    "Sepal.Width": 3.6,
    "Petal.Length": 1.4,
    "Petal.Width": 0.1,
    "Species": "setosa"
  },
  {
    "Sepal.Length": 4.4,
    "Sepal.Width": 3,
    "Petal.Length": 1.3,
    "Petal.Width": 0.2,
    "Species": "setosa"
  },
  {
    "Sepal.Length": 5.1,
    "Sepal.Width": 3.4,
    "Petal.Length": 1.5,
    "Petal.Width": 0.2,
    "Species": "setosa"
  },
  {
    "Sepal.Length": 5,
    "Sepal.Width": 3.5,
    "Petal.Length": 1.3,
    "Petal.Width": 0.3,
    "Species": "setosa"
  },
  {
    "Sepal.Length": 4.5,
    "Sepal.Width": 2.3,
    "Petal.Length": 1.3,
    "Petal.Width": 0.3,
    "Species": "setosa"
  },
  {
    "Sepal.Length": 4.4,
    "Sepal.Width": 3.2,
    "Petal.Length": 1.3,
    "Petal.Width": 0.2,
    "Species": "setosa"
  },
  {
    "Sepal.Length": 5,
    "Sepal.Width": 3.5,
    "Petal.Length": 1.6,
    "Petal.Width": 0.6,
    "Species": "setosa"
  },
  {
    "Sepal.Length": 5.1,
    "Sepal.Width": 3.8,
    "Petal.Length": 1.9,
    "Petal.Width": 0.4,
    "Species": "setosa"
  },
  {
    "Sepal.Length": 4.8,
    "Sepal.Width": 3,
    "Petal.Length": 1.4,
    "Petal.Width": 0.3,
    "Species": "setosa"
  },
  {
    "Sepal.Length": 5.1,
    "Sepal.Width": 3.8,
    "Petal.Length": 1.6,
    "Petal.Width": 0.2,
    "Species": "setosa"
  },
  {
    "Sepal.Length": 4.6,
    "Sepal.Width": 3.2,
    "Petal.Length": 1.4,
    "Petal.Width": 0.2,
    "Species": "setosa"
  },
  {
    "Sepal.Length": 5.3,
    "Sepal.Width": 3.7,
    "Petal.Length": 1.5,
    "Petal.Width": 0.2,
    "Species": "setosa"
  },
  {
    "Sepal.Length": 5,
    "Sepal.Width": 3.3,
    "Petal.Length": 1.4,
    "Petal.Width": 0.2,
    "Species": "setosa"
  },
  {
    "Sepal.Length": 7,
    "Sepal.Width": 3.2,
    "Petal.Length": 4.7,
    "Petal.Width": 1.4,
    "Species": "versicolor"
  },
  {
    "Sepal.Length": 6.4,
    "Sepal.Width": 3.2,
    "Petal.Length": 4.5,
    "Petal.Width": 1.5,
    "Species": "versicolor"
  },
  {
    "Sepal.Length": 6.9,
    "Sepal.Width": 3.1,
    "Petal.Length": 4.9,
    "Petal.Width": 1.5,
    "Species": "versicolor"
  },
  {
    "Sepal.Length": 5.5,
    "Sepal.Width": 2.3,
    "Petal.Length": 4,
    "Petal.Width": 1.3,
    "Species": "versicolor"
  },
  {
    "Sepal.Length": 6.5,
    "Sepal.Width": 2.8,
    "Petal.Length": 4.6,
    "Petal.Width": 1.5,
    "Species": "versicolor"
  },
  {
    "Sepal.Length": 5.7,
    "Sepal.Width": 2.8,
    "Petal.Length": 4.5,
    "Petal.Width": 1.3,
    "Species": "versicolor"
  },
  {
    "Sepal.Length": 6.3,
    "Sepal.Width": 3.3,
    "Petal.Length": 4.7,
    "Petal.Width": 1.6,
    "Species": "versicolor"
  },
  {
    "Sepal.Length": 4.9,
    "Sepal.Width": 2.4,
    "Petal.Length": 3.3,
    "Petal.Width": 1,
    "Species": "versicolor"
  },
  {
    "Sepal.Length": 6.6,
    "Sepal.Width": 2.9,
    "Petal.Length": 4.6,
    "Petal.Width": 1.3,
    "Species": "versicolor"
  },
  {
    "Sepal.Length": 5.2,
    "Sepal.Width": 2.7,
    "Petal.Length": 3.9,
    "Petal.Width": 1.4,
    "Species": "versicolor"
  },
  {
    "Sepal.Length": 5,
    "Sepal.Width": 2,
    "Petal.Length": 3.5,
    "Petal.Width": 1,
    "Species": "versicolor"
  },
  {
    "Sepal.Length": 5.9,
    "Sepal.Width": 3,
    "Petal.Length": 4.2,
    "Petal.Width": 1.5,
    "Species": "versicolor"
  },
  {
    "Sepal.Length": 6,
    "Sepal.Width": 2.2,
    "Petal.Length": 4,
    "Petal.Width": 1,
    "Species": "versicolor"
  },
  {
    "Sepal.Length": 6.1,
    "Sepal.Width": 2.9,
    "Petal.Length": 4.7,
    "Petal.Width": 1.4,
    "Species": "versicolor"
  },
  {
    "Sepal.Length": 5.6,
    "Sepal.Width": 2.9,
    "Petal.Length": 3.6,
    "Petal.Width": 1.3,
    "Species": "versicolor"
  },
  {
    "Sepal.Length": 6.7,
    "Sepal.Width": 3.1,
    "Petal.Length": 4.4,
    "Petal.Width": 1.4,
    "Species": "versicolor"
  },
  {
    "Sepal.Length": 5.6,
    "Sepal.Width": 3,
    "Petal.Length": 4.5,
    "Petal.Width": 1.5,
    "Species": "versicolor"
  },
  {
    "Sepal.Length": 5.8,
    "Sepal.Width": 2.7,
    "Petal.Length": 4.1,
    "Petal.Width": 1,
    "Species": "versicolor"
  },
  {
    "Sepal.Length": 6.2,
    "Sepal.Width": 2.2,
    "Petal.Length": 4.5,
    "Petal.Width": 1.5,
    "Species": "versicolor"
  },
  {
    "Sepal.Length": 5.6,
    "Sepal.Width": 2.5,
    "Petal.Length": 3.9,
    "Petal.Width": 1.1,
    "Species": "versicolor"
  },
  {
    "Sepal.Length": 5.9,
    "Sepal.Width": 3.2,
    "Petal.Length": 4.8,
    "Petal.Width": 1.8,
    "Species": "versicolor"
  },
  {
    "Sepal.Length": 6.1,
    "Sepal.Width": 2.8,
    "Petal.Length": 4,
    "Petal.Width": 1.3,
    "Species": "versicolor"
  },
  {
    "Sepal.Length": 6.3,
    "Sepal.Width": 2.5,
    "Petal.Length": 4.9,
    "Petal.Width": 1.5,
    "Species": "versicolor"
  },
  {
    "Sepal.Length": 6.1,
    "Sepal.Width": 2.8,
    "Petal.Length": 4.7,
    "Petal.Width": 1.2,
    "Species": "versicolor"
  },
  {
    "Sepal.Length": 6.4,
    "Sepal.Width": 2.9,
    "Petal.Length": 4.3,
    "Petal.Width": 1.3,
    "Species": "versicolor"
  },
  {
    "Sepal.Length": 6.6,
    "Sepal.Width": 3,
    "Petal.Length": 4.4,
    "Petal.Width": 1.4,
    "Species": "versicolor"
  },
  {
    "Sepal.Length": 6.8,
    "Sepal.Width": 2.8,
    "Petal.Length": 4.8,
    "Petal.Width": 1.4,
    "Species": "versicolor"
  },
  {
    "Sepal.Length": 6.7,
    "Sepal.Width": 3,
    "Petal.Length": 5,
    "Petal.Width": 1.7,
    "Species": "versicolor"
  },
  {
    "Sepal.Length": 6,
    "Sepal.Width": 2.9,
    "Petal.Length": 4.5,
    "Petal.Width": 1.5,
    "Species": "versicolor"
  },
  {
    "Sepal.Length": 5.7,
    "Sepal.Width": 2.6,
    "Petal.Length": 3.5,
    "Petal.Width": 1,
    "Species": "versicolor"
  },
  {
    "Sepal.Length": 5.5,
    "Sepal.Width": 2.4,
    "Petal.Length": 3.8,
    "Petal.Width": 1.1,
    "Species": "versicolor"
  },
  {
    "Sepal.Length": 5.5,
    "Sepal.Width": 2.4,
    "Petal.Length": 3.7,
    "Petal.Width": 1,
    "Species": "versicolor"
  },
  {
    "Sepal.Length": 5.8,
    "Sepal.Width": 2.7,
    "Petal.Length": 3.9,
    "Petal.Width": 1.2,
    "Species": "versicolor"
  },
  {
    "Sepal.Length": 6,
    "Sepal.Width": 2.7,
    "Petal.Length": 5.1,
    "Petal.Width": 1.6,
    "Species": "versicolor"
  },
  {
    "Sepal.Length": 5.4,
    "Sepal.Width": 3,
    "Petal.Length": 4.5,
    "Petal.Width": 1.5,
    "Species": "versicolor"
  },
  {
    "Sepal.Length": 6,
    "Sepal.Width": 3.4,
    "Petal.Length": 4.5,
    "Petal.Width": 1.6,
    "Species": "versicolor"
  },
  {
    "Sepal.Length": 6.7,
    "Sepal.Width": 3.1,
    "Petal.Length": 4.7,
    "Petal.Width": 1.5,
    "Species": "versicolor"
  },
  {
    "Sepal.Length": 6.3,
    "Sepal.Width": 2.3,
    "Petal.Length": 4.4,
    "Petal.Width": 1.3,
    "Species": "versicolor"
  },
  {
    "Sepal.Length": 5.6,
    "Sepal.Width": 3,
    "Petal.Length": 4.1,
    "Petal.Width": 1.3,
    "Species": "versicolor"
  },
  {
    "Sepal.Length": 5.5,
    "Sepal.Width": 2.5,
    "Petal.Length": 4,
    "Petal.Width": 1.3,
    "Species": "versicolor"
  },
  {
    "Sepal.Length": 5.5,
    "Sepal.Width": 2.6,
    "Petal.Length": 4.4,
    "Petal.Width": 1.2,
    "Species": "versicolor"
  },
  {
    "Sepal.Length": 6.1,
    "Sepal.Width": 3,
    "Petal.Length": 4.6,
    "Petal.Width": 1.4,
    "Species": "versicolor"
  },
  {
    "Sepal.Length": 5.8,
    "Sepal.Width": 2.6,
    "Petal.Length": 4,
    "Petal.Width": 1.2,
    "Species": "versicolor"
  },
  {
    "Sepal.Length": 5,
    "Sepal.Width": 2.3,
    "Petal.Length": 3.3,
    "Petal.Width": 1,
    "Species": "versicolor"
  },
  {
    "Sepal.Length": 5.6,
    "Sepal.Width": 2.7,
    "Petal.Length": 4.2,
    "Petal.Width": 1.3,
    "Species": "versicolor"
  },
  {
    "Sepal.Length": 5.7,
    "Sepal.Width": 3,
    "Petal.Length": 4.2,
    "Petal.Width": 1.2,
    "Species": "versicolor"
  },
  {
    "Sepal.Length": 5.7,
    "Sepal.Width": 2.9,
    "Petal.Length": 4.2,
    "Petal.Width": 1.3,
    "Species": "versicolor"
  },
  {
    "Sepal.Length": 6.2,
    "Sepal.Width": 2.9,
    "Petal.Length": 4.3,
    "Petal.Width": 1.3,
    "Species": "versicolor"
  },
  {
    "Sepal.Length": 5.1,
    "Sepal.Width": 2.5,
    "Petal.Length": 3,
    "Petal.Width": 1.1,
    "Species": "versicolor"
  },
  {
    "Sepal.Length": 5.7,
    "Sepal.Width": 2.8,
    "Petal.Length": 4.1,
    "Petal.Width": 1.3,
    "Species": "versicolor"
  },
  {
    "Sepal.Length": 6.3,
    "Sepal.Width": 3.3,
    "Petal.Length": 6,
    "Petal.Width": 2.5,
    "Species": "virginica"
  },
  {
    "Sepal.Length": 5.8,
    "Sepal.Width": 2.7,
    "Petal.Length": 5.1,
    "Petal.Width": 1.9,
    "Species": "virginica"
  },
  {
    "Sepal.Length": 7.1,
    "Sepal.Width": 3,
    "Petal.Length": 5.9,
    "Petal.Width": 2.1,
    "Species": "virginica"
  },
  {
    "Sepal.Length": 6.3,
    "Sepal.Width": 2.9,
    "Petal.Length": 5.6,
    "Petal.Width": 1.8,
    "Species": "virginica"
  },
  {
    "Sepal.Length": 6.5,
    "Sepal.Width": 3,
    "Petal.Length": 5.8,
    "Petal.Width": 2.2,
    "Species": "virginica"
  },
  {
    "Sepal.Length": 7.6,
    "Sepal.Width": 3,
    "Petal.Length": 6.6,
    "Petal.Width": 2.1,
    "Species": "virginica"
  },
  {
    "Sepal.Length": 4.9,
    "Sepal.Width": 2.5,
    "Petal.Length": 4.5,
    "Petal.Width": 1.7,
    "Species": "virginica"
  },
  {
    "Sepal.Length": 7.3,
    "Sepal.Width": 2.9,
    "Petal.Length": 6.3,
    "Petal.Width": 1.8,
    "Species": "virginica"
  },
  {
    "Sepal.Length": 6.7,
    "Sepal.Width": 2.5,
    "Petal.Length": 5.8,
    "Petal.Width": 1.8,
    "Species": "virginica"
  },
  {
    "Sepal.Length": 7.2,
    "Sepal.Width": 3.6,
    "Petal.Length": 6.1,
    "Petal.Width": 2.5,
    "Species": "virginica"
  },
  {
    "Sepal.Length": 6.5,
    "Sepal.Width": 3.2,
    "Petal.Length": 5.1,
    "Petal.Width": 2,
    "Species": "virginica"
  },
  {
    "Sepal.Length": 6.4,
    "Sepal.Width": 2.7,
    "Petal.Length": 5.3,
    "Petal.Width": 1.9,
    "Species": "virginica"
  },
  {
    "Sepal.Length": 6.8,
    "Sepal.Width": 3,
    "Petal.Length": 5.5,
    "Petal.Width": 2.1,
    "Species": "virginica"
  },
  {
    "Sepal.Length": 5.7,
    "Sepal.Width": 2.5,
    "Petal.Length": 5,
    "Petal.Width": 2,
    "Species": "virginica"
  },
  {
    "Sepal.Length": 5.8,
    "Sepal.Width": 2.8,
    "Petal.Length": 5.1,
    "Petal.Width": 2.4,
    "Species": "virginica"
  },
  {
    "Sepal.Length": 6.4,
    "Sepal.Width": 3.2,
    "Petal.Length": 5.3,
    "Petal.Width": 2.3,
    "Species": "virginica"
  },
  {
    "Sepal.Length": 6.5,
    "Sepal.Width": 3,
    "Petal.Length": 5.5,
    "Petal.Width": 1.8,
    "Species": "virginica"
  },
  {
    "Sepal.Length": 7.7,
    "Sepal.Width": 3.8,
    "Petal.Length": 6.7,
    "Petal.Width": 2.2,
    "Species": "virginica"
  },
  {
    "Sepal.Length": 7.7,
    "Sepal.Width": 2.6,
    "Petal.Length": 6.9,
    "Petal.Width": 2.3,
    "Species": "virginica"
  },
  {
    "Sepal.Length": 6,
    "Sepal.Width": 2.2,
    "Petal.Length": 5,
    "Petal.Width": 1.5,
    "Species": "virginica"
  },
  {
    "Sepal.Length": 6.9,
    "Sepal.Width": 3.2,
    "Petal.Length": 5.7,
    "Petal.Width": 2.3,
    "Species": "virginica"
  },
  {
    "Sepal.Length": 5.6,
    "Sepal.Width": 2.8,
    "Petal.Length": 4.9,
    "Petal.Width": 2,
    "Species": "virginica"
  },
  {
    "Sepal.Length": 7.7,
    "Sepal.Width": 2.8,
    "Petal.Length": 6.7,
    "Petal.Width": 2,
    "Species": "virginica"
  },
  {
    "Sepal.Length": 6.3,
    "Sepal.Width": 2.7,
    "Petal.Length": 4.9,
    "Petal.Width": 1.8,
    "Species": "virginica"
  },
  {
    "Sepal.Length": 6.7,
    "Sepal.Width": 3.3,
    "Petal.Length": 5.7,
    "Petal.Width": 2.1,
    "Species": "virginica"
  },
  {
    "Sepal.Length": 7.2,
    "Sepal.Width": 3.2,
    "Petal.Length": 6,
    "Petal.Width": 1.8,
    "Species": "virginica"
  },
  {
    "Sepal.Length": 6.2,
    "Sepal.Width": 2.8,
    "Petal.Length": 4.8,
    "Petal.Width": 1.8,
    "Species": "virginica"
  },
  {
    "Sepal.Length": 6.1,
    "Sepal.Width": 3,
    "Petal.Length": 4.9,
    "Petal.Width": 1.8,
    "Species": "virginica"
  },
  {
    "Sepal.Length": 6.4,
    "Sepal.Width": 2.8,
    "Petal.Length": 5.6,
    "Petal.Width": 2.1,
    "Species": "virginica"
  },
  {
    "Sepal.Length": 7.2,
    "Sepal.Width": 3,
    "Petal.Length": 5.8,
    "Petal.Width": 1.6,
    "Species": "virginica"
  },
  {
    "Sepal.Length": 7.4,
    "Sepal.Width": 2.8,
    "Petal.Length": 6.1,
    "Petal.Width": 1.9,
    "Species": "virginica"
  },
  {
    "Sepal.Length": 7.9,
    "Sepal.Width": 3.8,
    "Petal.Length": 6.4,
    "Petal.Width": 2,
    "Species": "virginica"
  },
  {
    "Sepal.Length": 6.4,
    "Sepal.Width": 2.8,
    "Petal.Length": 5.6,
    "Petal.Width": 2.2,
    "Species": "virginica"
  },
  {
    "Sepal.Length": 6.3,
    "Sepal.Width": 2.8,
    "Petal.Length": 5.1,
    "Petal.Width": 1.5,
    "Species": "virginica"
  },
  {
    "Sepal.Length": 6.1,
    "Sepal.Width": 2.6,
    "Petal.Length": 5.6,
    "Petal.Width": 1.4,
    "Species": "virginica"
  },
  {
    "Sepal.Length": 7.7,
    "Sepal.Width": 3,
    "Petal.Length": 6.1,
    "Petal.Width": 2.3,
    "Species": "virginica"
  },
  {
    "Sepal.Length": 6.3,
    "Sepal.Width": 3.4,
    "Petal.Length": 5.6,
    "Petal.Width": 2.4,
    "Species": "virginica"
  },
  {
    "Sepal.Length": 6.4,
    "Sepal.Width": 3.1,
    "Petal.Length": 5.5,
    "Petal.Width": 1.8,
    "Species": "virginica"
  },
  {
    "Sepal.Length": 6,
    "Sepal.Width": 3,
    "Petal.Length": 4.8,
    "Petal.Width": 1.8,
    "Species": "virginica"
  },
  {
    "Sepal.Length": 6.9,
    "Sepal.Width": 3.1,
    "Petal.Length": 5.4,
    "Petal.Width": 2.1,
    "Species": "virginica"
  },
  {
    "Sepal.Length": 6.7,
    "Sepal.Width": 3.1,
    "Petal.Length": 5.6,
    "Petal.Width": 2.4,
    "Species": "virginica"
  },
  {
    "Sepal.Length": 6.9,
    "Sepal.Width": 3.1,
    "Petal.Length": 5.1,
    "Petal.Width": 2.3,
    "Species": "virginica"
  },
  {
    "Sepal.Length": 5.8,
    "Sepal.Width": 2.7,
    "Petal.Length": 5.1,
    "Petal.Width": 1.9,
    "Species": "virginica"
  },
  {
    "Sepal.Length": 6.8,
    "Sepal.Width": 3.2,
    "Petal.Length": 5.9,
    "Petal.Width": 2.3,
    "Species": "virginica"
  },
  {
    "Sepal.Length": 6.7,
    "Sepal.Width": 3.3,
    "Petal.Length": 5.7,
    "Petal.Width": 2.5,
    "Species": "virginica"
  },
  {
    "Sepal.Length": 6.7,
    "Sepal.Width": 3,
    "Petal.Length": 5.2,
    "Petal.Width": 2.3,
    "Species": "virginica"
  },
  {
    "Sepal.Length": 6.3,
    "Sepal.Width": 2.5,
    "Petal.Length": 5,
    "Petal.Width": 1.9,
    "Species": "virginica"
  },
  {
    "Sepal.Length": 6.5,
    "Sepal.Width": 3,
    "Petal.Length": 5.2,
    "Petal.Width": 2,
    "Species": "virginica"
  },
  {
    "Sepal.Length": 6.2,
    "Sepal.Width": 3.4,
    "Petal.Length": 5.4,
    "Petal.Width": 2.3,
    "Species": "virginica"
  },
  {
    "Sepal.Length": 5.9,
    "Sepal.Width": 3,
    "Petal.Length": 5.1,
    "Petal.Width": 1.8,
    "Species": "virginica"
  }
]

Convert back to JSON

More informations about JSON: 1) http://www.json.org/ 2) tutorail: http://www.r-bloggers.com/new-package-jsonlite-a-smarter-json-encoderdecoder/ 3) jsonlite vignette

Data.table 1) written in C and much faster 2) all functions accept data.frame work on data.table

tables()
   NAME NROW NCOL MB  COLS KEY
1:   DT    9    3  0 x,y,z    
Total: 0MB

#see all the data tables in memory

subsetting rows

subsetting rows

subsetting columns!! DIFFERENT

k = {print(10); 5}
[1] 10
print(k)
[1] 5

Calculating values for variables with expressions

DT[,table(y)]
y
a b c 
3 3 3 

Adding new columns, using “:=”

Multiple operations

DT[,m:={tmp <-(x+z); log2(tmp+5)}]
Error in `:=`(m, { : 
  Check that is.data.table(DT) == TRUE. Otherwise, := and `:=`(...) are defined for use in j, once only and in particular ways. See help(":=").

plyr like operations

Sepcial Variables .N An integer, lenth 1, containing the number

Keys

Joins

Fast Reading

system.time(fread(file))
   user  system elapsed 
  0.089   0.016   0.105 
system.time(read.table(file, header = TRUE, sep = "\t"))
   user  system elapsed 
  5.392   0.110   5.529 

the differences with df and dt: https://stackoverflow.com/questions/13618488/what-you-can-do-with-a-data-frame-that-you-cant-with-a-data-table

When you save the notebook, an HTML file containing the code and output will be saved alongside it (click the Preview button or press Cmd+Shift+K to preview the HTML file).

The preview shows you a rendered HTML copy of the contents of the editor. Consequently, unlike Knit, Preview does not run any R code chunks. Instead, the output of the chunk when it was last run in the editor is displayed.

LS0tCnRpdGxlOiAiV2VlazEgTm90ZXMiCm91dHB1dDogaHRtbF9ub3RlYm9vawotLS0KV2hhdCBhIENvZGUgQm9vayBzaG91bGQgY29udGFpbgoxKSBpbmZvcm1hdGlvbiBhYm91dCB2YXJpYWJsZXMKICAgIGluIHRoZSBkYXRhIHNldCBub3QgY29udGFpbmVkIGluIHRoZSB0aWR5IGRhdGEKMikgSW5mb3JtYXRpb24gYWJvdXQgdGhlIHN1bW1hcnkgY2hvaWNlcyBtYWRlCjMpIEluZm9ybWF0aW9uIGFib3V0IHRoZSBleHBlcmltZW50YWwgc3R1ZHkgZGVzaWduIHVzZWQKCkEgY29tbW9uIGZvcm1hdDogV29yZC90ZXh0IGZpbGUKVGhlcmUgc2hvdWxkIGJlIGEgc2VjdGlvbiBjYWxsZWQgIlN0dWR5IERlc2lnbiIgdGhhdCBoYXMgYSB0aHJvdWdoIGRlc2NyaXB0aW9uIG9mIGhvdyB5b3UgY29sbGVjdGVkIGRhdGEuCgpUaGUgaW5zdHJ1Y3Rpb24gbGlzdAotIElkZWFsbHkgaW4gUiBzY3JpcHQKLSBUaGUgaW5wdXQgaXMgcmF3IGRhdGEKLSBUaGUgb3V0cHV0IGlzIHRoZSBwcm9jZXNzZWQsIHRpZHkgZGF0YQotIFRoZXJlIGFyZSBubyBwYXJhbWV0ZXJzIHRvIHRoZSBzY3JpcHQKCgpHZXQvc2V0IHdvcmtpbmcgZGlyZWN0b3J5Ci1JbiBNYWMgT1M6IApgYGB7cn0Kc2V0d2QoIi4vZGF0YSIpCmBgYAoKLUluIFdpbmRvd3MgCmBgYHtyfQpzZXR3ZCgiQzpcXFVzZXJzXFxBbmRyZXdcXERvd25sb2FkcyIpCmBgYAoKQ2hlY2tpbmcgZm9yIGFuZCBjcmVhdGluZyBkaXJlY3RvcmllcwpgYGB7cn0KaWYgKCFmaWxlLmV4aXN0cygiZGF0YSIpKXsKICAgIGRpci5jcmVhdGUoImRhdGEiKQp9CmBgYAoKR2V0dGluZyBkYXRhIGZyb20gdGhlIEludGVybmV0CmBgYHtyfQpkb3dubG9hZC5maWxlKHVybCA9ICwgZGVzdGZpbGUgPSAsICkKYGBgCgpBbiBleGFtcGxlIG9mIGRvd25sb2FkaW5nIGRhdGF0IGZvcm0gYmFsdGltb3JlY2l0eSB3ZWJzaXRlCmBgYHtyfQpmaWxlVXJsIDwtICJodHRwczovL2RhdGEuYmFsdGltb3JlY2l0eS5nb3YvYXBpL3ZpZXdzL2R6NTQtMmFydS9yb3dzLmNzdj9hY2Nlc3NUeXBlPURPV05MT0FEIgpkb3dubG9hZC5maWxlKGZpbGVVcmwsIGRlc3RmaWxlID0gIi4vZGF0YS9jYW1lcmFzLmNzdiIsIG1ldGhvZCA9ICJjdXJsIikgI3dlIG9ubHkgbmVlZCB0byBzZXQgdGhlIG1ldGhvZCB0byBjdXJsIGluIE1BQywgd2hpbGUgaW4gV2luZG93cyB0aGUgSFRUUFMgYXJlIHRoZSBkZWZhdWx0IG1ldGhvZAojIEl0IGRvZXNuJ3Qgd29yayBiZWNhdXNlIHRoZSB1cmwgZG9lcyBub3Qgd29yayEKbGlzdC5maWxlcygiLi9kYXRhIikKZGF0ZURvd25sb2FkZWQgPC0gZGF0ZSgpCmBgYAoKCkhvdyB0byBvcGVuIGxvY2FsIGZpbGUKLSBJIGRvd25sb2FkZWQgdGhlIEJhbHRpbW9yZSBmaXhlZCBjYW1lcmEgZGF0YXNldCBtYW5udWFsbHkgYW5kIHNhdmUgaXQgaW4gdGhlIGZpbGUgaW4gIi4vZGF0YS9GaXhlZF9TcGVlZF9DYW1lcmFzLmNzdiIKCk5vdyB0cnkgdG8gcmVhZCBpdCEKYGBge3J9CmNhbWVyYURhdGEgPC0gcmVhZC5jc3YoIi4vZGF0YS9GaXhlZF9TcGVlZF9DYW1lcmFzLmNzdiIpCmhlYWQoY2FtZXJhRGF0YSkKYGBgClNvbWUgaW1wb3J0YW50IHBhcmFtZXRlcnMKcXVvdGUgLSBzb21ldGltZXMgd2Ugc2hvdWxkIHNldCBxdW90ZWQ9IiIKbmEuc3RyaW5ncyAtIHNldCB0aGUgY2hhcmFjdGVyIHRoYXQgcmVwcmVzc2VudCBhIG1pc3NpbmcgdmFsdWUKbnJvd3MgLSBob3cgbWFueSByb3dzIHRvIHJlYWQKc2tpcCAtIG51bWJlciBvZiBsaW5lcyB0byBza2lwIGJlZmVyZSBzdGFydGluZyB0byByZWFkCgoKcmVhZCBFeGNlbCBmaWxlcwpgYGB7cn0KbGlicmFyeSh4bHN4KQpjYW1ycmFEYXRhMiA8LSByZWFkLnhsc3goIi4vZGF0YS94eHgueGxzeCIsc2hlZXRJbmRleCA9IDEsIGhlYWRlciA9IFRSVUUpCmBgYAotIHJlYWQueGx4czIgaXMgbXVjaCBmYXN0ZXIgdGhhbiByZWFkLnhsc3ggYnV0IGZvciByZWFkaW5nIHN1YnNldHMgb2Ygcm93cyBtYXkgYmUgc2xpZ2h0bHkgdW5zdGFibGUKCi0gWExDb25uZWN0IHBhY2thZ2UgaGFzIG1vcmUgb3B0aW9ucyBmb3Igd3JpdGluZyBhbmQgbWFuaXB1bGF0aW5nIEV4Y2VsIGZpbGVzCi0gWExDbm9ubmVjdCBjaWduZXR0ZSBpcyBhIGdvb2QgcGxhY2UgdG8gc3RhcnQgZm9yIHRoYXQgcGFja2FnZQoKCgpSZWFkaW5nIFhNTAoKMSlUYWdzLCBlbGVtZW50cyBhbmQgYXR0cmlidXRlcwogIFRhZ2VzIC0gU3RhcnQgdGFnZXMgPHNlY3Rpb24+CiAgICAgICAgLSBFbmQgdGFnZXMgPC9zZWN0aW9uPgogICAgICAgIC0gRW1wdHkgdGFnczxsaW5lLWJyZWFrIC8+CiAgRWxlbWVudHMKICAgICAgICAtIDxHcmVldGluZz4gSGVsbG8sIHdvcmxkIDwvR3JlZXRpbmc+CiAgQXR0cmlidXRlcyBhcmUgY29tcG9uZXRzIG9mIHRoZSBsYWJlbAogICAgICAgIC0gPGltZyBzY3IgPSAiamVmZi5qcGciPiBhbHQ9Imluc3RydWN0b3IiLz4KICAgICAgICAtIDxzdGVwIG51bWJlciA9IjMiPiBDb25uZWN0IEEgdG8gQi4gPC9zdGVwPgogICAgICAgIApgYGB7cn0KbGlicmFyeShYTUwpCmZpbGVVcmwgPC0gImh0dHA6Ly93d3cudzNzY2hvb2xzLmNvbS94bWwvc2ltcGxlL3htbCIKZG9jIDwteG1sVHJlZVBhcnNlKGZpbGVVcmwsIHVzZUludGVybmFsTm9kZXMgPSBUUlVFKQpyb290Tm9kZSA8LSB4bWxSb290KGRvYykKCiNQcm9nYXJhbW1hdGljYWxseSBleHRyYWN0IHBhcnRzIG9mIHRoZSBmaWxlCnhtbFNBcHBseShyb290Tm9kZSwgeG1sVmFsdWUpCmBgYApHZXQgdGhlIGl0ZW1zIG9uIHRoZSBtZW51IGFuZCBwcmljZXMKYGBge3J9CnhwYXRoQXBwbHkocm9vdE5vZGUiLy9uYW1lIix4bWxWYWx1ZSkKeHBhdGhBcHBseShyb290Tm9kZSIvL3ByaWNlIix4bWxWYWx1ZSkKYGBgCgoKYGBge3J9Cm15VXJsIDwtICJodHRwczovL3d3dy5lc3BuLmNvbS9uZmwvdGVhbS9fL25hbWUvYmFsL2JhbHRpbW9yZS1yYXZlbnMiCmRvYyA8LSBodG1sVHJlZVBhcnNlKG15VXJsLCB1c2VJbnRlcm5hbCA9IFRSVUUpCnNjb3JlcyA8LSB4cGF0aFNBcHBseShkb2MsICIvL2xpW0BjbGFzcz0nc2NvcmUnXSIseG1sVmFsdWUpCnRlYW1zIDwtIHhwYXRoU0FwcGx5KGRvYywgIi8vbGlbQGNsYXNzPSd0ZWFtLW5hbWUnXSIseG1sVmFsdWUpCmBgYAoKClJlYWRpbmcgSmF2YXNjcmlwdCBPYmplY3QgTm90YXRpb24oSlNPTikKLSBMaWdodHdlaWdodCBkYXRhIHN0b3JhZ2UKYGBge3J9CmxpYnJhcnkoanNvbmxpdGUpCmpzb25EQVRBIDwtIGZyb21KU09OKCJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL1ppeHVhbi1ZVS9yZXBvcyIpCiNuYW1lcyhqc29uREFUQSkKbmFtZXMoanNvbkRBVEEkb3duZXIpCmpzb25EQVRBJG93bmVyJGxvZ2luCmBgYApXcml0aW5nIGRhdGEgZnJhbWVzIHRvIEpTT04KYGBge3J9Cm15anNvbiA8LSB0b0pTT04oaXJpcywgcHJldHR5ID0gVFJVRSkKY2F0KG15anNvbikKYGBgCgpDb252ZXJ0IGJhY2sgdG8gSlNPTgpgYGB7cn0KaXJpczIgPC0gZnJvbUpTT04obXlqc29uKQpoZWFkKGlyaXMyKQpgYGAKCk1vcmUgaW5mb3JtYXRpb25zIGFib3V0IEpTT046CjEpIGh0dHA6Ly93d3cuanNvbi5vcmcvCjIpIHR1dG9yYWlsOiBodHRwOi8vd3d3LnItYmxvZ2dlcnMuY29tL25ldy1wYWNrYWdlLWpzb25saXRlLWEtc21hcnRlci1qc29uLWVuY29kZXJkZWNvZGVyLwozKSBqc29ubGl0ZSB2aWduZXR0ZQoKCgoKCkRhdGEudGFibGUgCjEpIHdyaXR0ZW4gaW4gQyBhbmQgbXVjaCBmYXN0ZXIKMikgYWxsIGZ1bmN0aW9ucyBhY2NlcHQgZGF0YS5mcmFtZSB3b3JrIG9uIGRhdGEudGFibGUKYGBge3J9CmxpYnJhcnkoZGF0YS50YWJsZSkKRFQgPSBkYXRhLnRhYmxlKHg9cm5vcm0oOSksIHk9cmVwKGMoImEiLCJiIiwiYyIpLGVhY2g9MyksIHo9cm5vcm0oOSkpCmhlYWQoRFQsMykKYGBgCmBgYHtyfQp0YWJsZXMoKQpgYGAKI3NlZSBhbGwgdGhlIGRhdGEgdGFibGVzIGluIG1lbW9yeQoKc3Vic2V0dGluZyByb3dzCmBgYHtyfQpEVFsyLF0KYGBgCnN1YnNldHRpbmcgcm93cwpgYGB7cn0KRFRbYygyLDMpXQoj5aaC5p6c5LiN5Yqg6YCX5Y+377yM5bCx5pivc3Vic2V0dGluZyBiYXNlZCBvbiByb3dzCiPmraTlpITpnIDopoHms6jmhI/vvIHkuI5kYXRhIGZyYW1l5LiN5ZCMCmBgYApzdWJzZXR0aW5nIGNvbHVtbnMhISBESUZGRVJFTlQKYGBge3J9CnsKICB4ID0gMQogIHkgPSAyCn0KayA9IHtwcmludCgxMCk7IDV9CmBgYApgYGB7cn0KcHJpbnQoaykKYGBgCgpDYWxjdWxhdGluZyB2YWx1ZXMgZm9yIHZhcmlhYmxlcyB3aXRoIGV4cHJlc3Npb25zCmBgYHtyfQpEVCA8LSBkYXRhLnRhYmxlKHg9cm5vcm0oOSksIHk9cmVwKGMoImEiLCJiIiwiYyIpLGVhY2g9MyksIHogPSBybm9ybSg5KSkKRFQKRFRbLGxpc3QobWVhbih4KSxzdW0oeikpXQpEVFssdGFibGUoeSldCmBgYApBZGRpbmcgbmV3IGNvbHVtbnMsIHVzaW5nICI6PSIKYGBge3J9CkRUCkRUWyx3Oj16XjJdCmBgYApgYGB7cn0KRFQyIDwtIERUCmBgYAoKTXVsdGlwbGUgb3BlcmF0aW9ucwpgYGB7cn0KRFRbLG06PXt0bXAgPC0oeCt6KTsgbG9nMih0bXArNSl9XQpgYGAKCnBseXIgbGlrZSBvcGVyYXRpb25zCmBgYHtyfQpEVFssYTo9eD4wXQpEVFssYjo9bWVhbih4K3cpLGJ5PWFdCmBgYAoKClNlcGNpYWwgVmFyaWFibGVzCi5OIEFuIGludGVnZXIsIGxlbnRoIDEsIGNvbnRhaW5pbmcgdGhlIG51bWJlcgpgYGB7cn0Kc2V0LnNlZWQoMTIzKTsKRFQgPC0gZGF0YS50YWJsZSh4PXNhbXBsZShsZXR0ZXJzWzE6M10sMUU1LFRSVUUpKQpEVFssIC5OLCBieT14XQpgYGAKCgpLZXlzCmBgYHtyfQpEVCA8LSBkYXRhLnRhYmxlKHg9cmVwKGMoImEiLCJiIiwiYyIpLGVhY2g9MTAwKSwgeT1ybm9ybSgzMDApKQpzZXRrZXkoRFQsIHgpCkRUWydhJ10KYGBgCgpKb2lucwpgYGB7cn0KRFQxIDwtIGRhdGEudGFibGUoeD1jKCJhIiwiYSIsImIiLCJkdDEiKSx5PTE6NCkKRFQyIDwtIGRhdGEudGFibGUoeD1jKCJhIiwiYiIsImR0MiIpLHo9NTo3KQpzZXRrZXkoRFQxLCB4KQpzZXRrZXkoRFQyLCB4KQptZXJnZShEVDEsRFQyKQpgYGAKRmFzdCBSZWFkaW5nCmBgYHtyfQpiaWdfZGYgPC0gZGF0YS5mcmFtZSh4PSBybm9ybSgxRTYpLCB5PXJub3JtKDFFNikpCmZpbGUgPC0gdGVtcGZpbGUoKQp3cml0ZS50YWJsZShiaWdfZGYsIGZpbGUgPSBmaWxlLCByb3cubmFtZXMgPSBGQUxTRSwgY29sLm5hbWVzID0gRkFMU0UsIHNlcCA9ICJcdCIsIHF1b3RlID0gRkFMU0UpCnN5c3RlbS50aW1lKGZyZWFkKGZpbGUpKQpgYGAKYGBge3J9CnN5c3RlbS50aW1lKHJlYWQudGFibGUoZmlsZSwgaGVhZGVyID0gVFJVRSwgc2VwID0gIlx0IikpCmBgYAoKCnRoZSBkaWZmZXJlbmNlcyB3aXRoIGRmIGFuZCBkdDogaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTM2MTg0ODgvd2hhdC15b3UtY2FuLWRvLXdpdGgtYS1kYXRhLWZyYW1lLXRoYXQteW91LWNhbnQtd2l0aC1hLWRhdGEtdGFibGUKCgpXaGVuIHlvdSBzYXZlIHRoZSBub3RlYm9vaywgYW4gSFRNTCBmaWxlIGNvbnRhaW5pbmcgdGhlIGNvZGUgYW5kIG91dHB1dCB3aWxsIGJlIHNhdmVkIGFsb25nc2lkZSBpdCAoY2xpY2sgdGhlICpQcmV2aWV3KiBidXR0b24gb3IgcHJlc3MgKkNtZCtTaGlmdCtLKiB0byBwcmV2aWV3IHRoZSBIVE1MIGZpbGUpLiAKClRoZSBwcmV2aWV3IHNob3dzIHlvdSBhIHJlbmRlcmVkIEhUTUwgY29weSBvZiB0aGUgY29udGVudHMgb2YgdGhlIGVkaXRvci4gQ29uc2VxdWVudGx5LCB1bmxpa2UgKktuaXQqLCAqUHJldmlldyogZG9lcyBub3QgcnVuIGFueSBSIGNvZGUgY2h1bmtzLiBJbnN0ZWFkLCB0aGUgb3V0cHV0IG9mIHRoZSBjaHVuayB3aGVuIGl0IHdhcyBsYXN0IHJ1biBpbiB0aGUgZWRpdG9yIGlzIGRpc3BsYXllZC4KCg==