digIT.” A single binary digit can be 0 or 1, but there is nothing stop-
ping us from using more than one binary digit in our messages. 
Have a look at the example in the table below:
Here we have started to use two binary digits - two bits - to create 
a “code book” for four different messages that we might want to 
transmit to our friend about her dinner party. If we were certain 
that we would not attend, we would send her the message 0 0. If 
we definitely planned to attend we would send her 1 1. But we 
have two additional possibilities, “Maybe” which is represented by 
0 1, and “Probably” which is represented by 1 0. It is interesting to 
compare our original yes/no message of one bit with this new 
four-option message with two bits. In fact, every time you add a 
new bit you double the number of possible messages you can send. 
So three bits would give eight options and four bits would give 16 
options. How many options would there be for five bits?
When we get up to eight bits - which provides 256 different combi-
nations - we finally have something of a reasonably useful size to 
work with. Eight bits is commonly referred to as a “byte” - this 
term probably started out as a play on words with the word bit. 
(Try looking up the word “nybble” online!) A byte offers enough 
different combinations to encode all of the letters of the alphabet, 
including capital and small letters. There is an old rulebook called 
“ASCII” - the American Standard Code for Information Inter-
change - which matches up patterns of eight bits with the letters of 
the alphabet, punctuation, and a few other odds and ends. For ex-
ample the bit pattern 0100 0001 represents the capital letter A and 
the next higher pattern, 0100 0010, represents capital B. Try looking 
up an ASCII table online (for example, 
http://www.asciitable.com
/) and you can find all of the combina-
tions. Note that the codes may not actually be shown in binary be-
cause it is so difficult for people to read long strings of ones and ze-
roes. Instead you may see the equivalent codes shown in hexadeci-
mal (base 16), octal (base 8), or the most familiar form that we all 
use everyday, base 10. Although you might remember base conver-
sions from high school math class, it would be a good idea to prac-
tice this a little bit - particularly the conversions between binary, 
hexadecimal, and decimal (base 10). You might also enjoy Vi Hart’s 
“Binary Hand Dance” video at Khan Academy (search for this at 
http://www.khanacademy.org
or follow the link at the end of the 
chapter). Most of the work we do in this book will be in decimal, 
but more complex work with data often requires understanding 
hexadecimal and being able to know how a hexadecimal number, 
like 0xA3, translates into a bit pattern. Try searching online for “bi-
nary conversion tutorial” and you will find lots of useful sites.
Combining Bytes into Larger Structures
Now that we have the idea of a byte as a small collection of bits 
(usually eight) that can be used to store and transmit things like let-
ters and punctuation marks, we can start to build up to bigger and 
better things. First, it is very easy to see that we can put bytes to-
10
MEANING
2ND DIGIT 1ST DIGIT
No
0
0
Maybe
0
1
Probably
1
0
Definitely
1
1
Pdf rotate one page - rotate PDF page permanently in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Empower Users to Change the Rotation Angle of PDF File Page Using C#
pdf reverse page order; permanently rotate pdf pages
Pdf rotate one page - VB.NET PDF Page Rotate Library: rotate PDF page permanently in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
PDF Document Page Rotation in Visual Basic .NET Class Application
rotate pages in pdf permanently; rotate all pages in pdf preview
gether into lists in order to make a “string” of letters, what is often 
referred to as a “character string.” If we have a piece of text, like 
“this is a piece of text” we can use a collection of bytes to represent 
it like this: 
011101000110100001101001011100110010000001101001011100110010
000001100001001000000111000001101001011001010110001101100101
001000000110111101100110001000000111010001100101011110000111
0100
Now nobody wants to look at that, let alone encode or decode it by 
hand, but fortunately, the computers and software we use these 
days takes care of the conversion and storage automatically. For ex-
ample, when we tell the open source data language “R” to store 
“this is a piece of text” for us like this:
myText <- "this is a piece of text"
...we can be certain that inside the computer there is a long list of 
zeroes and ones that represent the text that we just stored. By the 
way, in order to be able to get our piece of text back later on, we 
have made a kind of storage label for it (the word “myText” 
above). Anytime that we want to remember our piece of text or use 
it for something else, we can use the label “myText” to open up the 
chunk of computer memory where we have put that long list of bi-
nary digits that represent our text. The left-pointing arrow made 
up out of the less-than character (“<“) and the dash character (“-”) 
gives R the command to take what is on the right hand side (the 
quoted text) and put it into what is on the left hand side (the stor-
age area we have labeled “myData”). Some people call this the as-
signment arrow and it is used in some computer languages to 
make it clear to the human who writes or reads it which direction 
the information is flowing.
From the computer’s standpoint, it is even simpler to store, remem-
ber, and manipulate numbers instead of text. Remember than an 
eight bit byte can hold 256 combinations, so just using that very 
small amount we could store the numbers from 0 to 255. (Of 
course, we could have also done 1 to 256, but much of the counting 
and numbering that goes on in computers starts with zero instead 
of one.) Really, though, 255 is not much to work with. We couldn’t 
count the number of houses in most towns or the number of cars in 
a large parking garage unless we can count higher than 255. If we 
put together two bytes to make 16 bits we can count from zero up 
to up to 65,535, but that is still not enough for some of the really 
big numbers in the world today (for example, there are more than 
200 million cars in the U.S. alone). Most of the time, if we want to 
be flexible in representing an integer (a number with no decimals), 
we use four bytes stuck together. Four bytes stuck together is a to-
tal of 32 bits, and that allows us to store an integer as high as 
4,294,967,295. 
Things get slightly more complicated when we want to store a 
negative number or a number that has digits after the decimal 
point. If you are curious, try looking up “two's complement” for 
more information about how signed numbers are stored and “float-
ing point” for information about how numbers with digits after the 
decimal point are stored. For our purposes in this book, the most 
important thing to remember is that text is stored differently than 
numbers, and among numbers integers are stored differently than 
floating point. Later we will find that it is sometimes necessary to 
11
VB.NET PDF Page Delete Library: remove PDF pages in vb.net, ASP.
If you are looking for a solution to conveniently delete one page from your PDF document, you can use this VB.NET PDF Library, which supports a variety of PDF
rotate all pages in pdf file; how to rotate a single page in a pdf document
C# PDF File Merge Library: Merge, append PDF files in C#.net, ASP.
C# developers can easily merge and append one PDF document to document imaging toolkit, also offers other advanced PDF document page processing and
rotate pdf page few degrees; rotate pdf page
convert between these different representations, so it is always im-
portant to know how it is represented.
So far we have mainly looked at how to store one thing at a time, 
like one number or one letter, but when we are solving problems 
with data we often need to store a group of related things together. 
The simplest place to start is with a list of things that are all stored 
in the same way. For example, we could have a list of integers, 
where each thing in the list is the age of a person in your family. 
The list might look like this: 43, 42, 12, 8, 5. The first two numbers 
are the ages of the parents and the last three numbers are the ages 
of the kids. Naturally, inside the computer each number is stored 
in binary, but fortunately we don’t have to type them in that way 
or look at them that way. Because there are no decimal points, 
these are just plain integers and a 32 bit integer (4 bytes) is more 
than enough to store each one. This list contains items that are all 
the same “type” or “mode.” The open source data program “R” re-
fers to a list where all of the items are of the same mode as a “vec-
tor.” We can create a vector with R very easily by listing the num-
bers, separated by commas and inside parentheses:
c(43, 42, 12, 8, 5)
The letter “c” in front of the opening parenthesis stands for concate-
nate, which means to join things together. Slightly obscure, but 
easy enough to get used to with some practice. We can also put in 
some of what we learned a couple of days ago to store our vector 
in a named location (remember that a vector is list of items of the 
same mode/type):
myFamilyAges <- c(43, 42, 12, 8, 5)
We have just created our first “data set.” It is very small, for sure, 
only five items, but also very useful for illustrating several major 
concepts about data. Here’s a recap:
In the heart of the computer, all data are represented in binary. 
One binary digit, or bit, is the smallest chunk of data that we can 
send from one place to another.
Although all data are at heart binary, computers and software 
help to represent data in more convenient forms for people to 
see. Three important representations are: “character” for repre-
senting text, “integer” for representing numbers with no digits 
after the decimal point, and “floating point” for numbers that 
may have digits after the decimal point. The list of numbers in 
our tiny data set just above are integers.
Numbers and text can be collected into lists, which the open 
source program “R” calls vectors. A vector has a length, which is 
the number of items in it, and a “mode” which is the type of data 
stored in the vector. The vector we were just working on has a 
length of 5 and a mode of integer.
In order to be able to remember where we stored a piece of data, 
most computer programs, including R, give us a way of labeling 
a chunk of computer memory. We chose to give the 5-item vector 
up above the name “myFamilyAges.” Some people might refer 
to this named list as a “variable,” because the value of it varies, 
depending upon which member of the list you are examining.
If we gather together one or more variables into a sensible 
group, we can refer to them together as a “data set.” Usually, it 
doesn’t make sense to refer to something with just one variable 
12
VB.NET PDF File Merge Library: Merge, append PDF files in vb.net
all. This guiding page will help you merge two or more PDF documents into a single one in a Visual Basic .NET imaging application.
how to save a pdf after rotating pages; rotate pages in pdf expert
C# PDF Page Extract Library: copy, paste, cut PDF pages in C#.net
Extract PDF Pages, Copy Pages from One PDF File and Paste into Others in C#.NET Program. Free PDF document processing SDK supports PDF page extraction, copying
rotate pdf pages individually; how to rotate one pdf page
as a data set, so usually we need at least two variables. Techni-
cally, though, even our very simple “myFamilyAges” counts as a 
data set, albeit a very tiny one.  
In the next chapter we will install and run the open source “R” 
data program and learn more about how to create data sets, sum-
marize the information in those data sets, and perform some sim-
ple calculations and transformations on those data sets.
Chapter Challenge
Discover the meaning of “Boolean Logic” and the rules for “and”, 
“or”, “not”, and “exclusive or”. Once you have studied this for a 
whole, write down on a piece of paper, without looking, all of the 
binary operations that demonstrate these rules. 
Sources
http://en.wikipedia.org/wiki/Claude_Shannon
http://en.wikipedia.org/wiki/Information_theory
http://cran.r-project.org/doc/manuals/R-intro.pdf
http://www.khanacademy.org/math/vi-hart/v/binary-hand-dan
ce
http://www.khanacademy.org/science/computer-science/v/intr
oduction-to-programs-data-types-and-variables
http://www.asciitable.com
Test Yourself
13
Review 1.1 About Data
Check Answer
Question 1 of  3
The smallest unit of information com-
monly in use in today’s computers is 
called:
A. A Bit
B. A Byte
C. A Nybble
D. An Integer
VB.NET PDF Annotate Library: Draw, edit PDF annotation, markups in
to display it. Thus, PDFPage, derived from REPage, is a programming abstraction for representing one PDF page. Annotating Process.
save pdf rotate pages; how to rotate a pdf page in reader
C# PDF Page Delete Library: remove PDF pages in C#.net, ASP.NET
Using RasterEdge Visual C# .NET PDF page deletion component, developers can easily select one or more PDF pages and delete it/them in both .NET web and Windows
rotate pdf pages and save; rotate single page in pdf
Data Science is different from other areas such as mathematics of statistics. Data Science is an applied 
activity and data scientists serve the needs and solve the problems of data users. Before you can solve 
a problem, you need to identify it and this process is not always as obvious as it might seem. In this 
chapter, we discuss the identification of data problems.
CHAPTER 2
14
Identifying Data Problems
C# PDF: C# Code to Process PDF Document Page Using C#.NET PDF
for developers on how to rotate PDF page in different two different PDF documents into one large PDF C# PDF Page Processing: Split PDF Document - C#.NET PDF
how to rotate just one page in pdf; how to permanently rotate pdf pages
C# PDF copy, paste image Library: copy, paste, cut PDF images in
This C#.NET example describes how to copy an image from one page of PDF document and paste it into another page. // Define input and output documents.
how to rotate one page in a pdf file; pdf page order reverse
Apple farmers live in constant fear, first for their blossoms and 
later for their fruit. A late spring frost can kill the blossoms. Hail or 
extreme wind in the summer can damage the fruit. More generally, 
farming is an activity that is first and foremost in the physical 
world, with complex natural processes and forces, like weather, 
that are beyond the control of humankind. 
In this highly physical world of unpredictable natural forces, is 
there any role for data science? On the surface there does not seem 
to be. But how can we know for sure?  Having a nose for identify-
ing data problems requires openness, curiosity, creativity, and a 
willingness to ask a lot of questions. In fact, if you took away from 
the first chapter the impression that a data scientist sits in front a of 
computer all day and works a crazy program like R, that is a mis-
take. Every data scientist must (eventually) become immersed in 
the problem domain where she is working. The data scientist may 
never actually become a farmer, but if you are going to identify a 
data problem that a farmer has, you have to learn to think like a 
farmer, to some degree.
To get this domain knowledge you can read or watch videos, but 
the best way is to ask “subject matter experts” (in this case farm-
ers) about what they do. The whole process of asking questions de-
serves its own treatment, but for now there are three things to 
think about when asking questions. First, you want the subject mat-
ter experts, or SMEs, as they are sometimes called, to tell stories of 
what they do. Then you want to ask them about anomalies: the un-
usual things that happen for better or for worse. Finally, you want 
to ask about risks and uncertainty: what are the situations where it 
is hard to tell what will happen next - and what happens next 
could have a profound effect on whether the situation ends badly 
or well. Each of these three areas of questioning reflects an ap-
proach to identifying data problems that may turn up something 
good that could be accomplished with data, information, and the 
right decision at the right time.
The purpose of asking about stories is that people mainly think in 
stories. From farmers to teachers to managers to CEOs, people 
know and tell stories about success and failure in their particular 
domain. Stories are powerful ways of communicating wisdom be-
tween different members of the same profession and they are ways 
of collecting a sense of identity that sets one profession apart from 
another profession. The only problem is that stories can be wrong.
If you can get a professional to tell the main stories that guide how 
she conducts her work, you can then consider how to verify that 
story. Without questioning the veracity of the person that tells the 
story, you can imagine ways of measuring the different aspects of 
how things happen in the story with an eye towards eventually 
verifying (or sometimes debunking) the stories that guide profes-
sional work.
For example, the farmer might say that in the deep spring frost 
that occurred five years ago, the trees in the hollow were spared 
frost damage while the trees  around the ridge of the hill had more 
damage. For this reason, on a cold night the farmer places most of 
the smudgepots (containers that hold a fuel that creates a smoky 
fire) around the ridge. The farmer strongly believes that this strat-
egy works, but does it? It would be possible to collect time-series 
temperature data from multiple locations within the orchard on 
cold and warm nights, and on nights with and without smudge-
pots. The data could be used to create a model of temperature 
15
changes in the different areas of the orchard and this model could 
support, improve, or debunk the story. 
A second strategy for problem identification is to look for the excep-
tion cases, both good and bad. A little later in the book we will 
learn about how the core of classic methods of statistical inference 
is to characterize “the center” - the most typical cases that occur - 
and then examine the extreme cases that are far from the center for 
information that could help us understand an intervention or an 
unusual combination of circumstances. Identifying unusual cases 
is a powerful way of understanding how things work, but it is nec-
essary first to define the central or most typical occurrences in or-
der to have an accurate idea of what constitutes an unusual case. 
Coming back to our farmer friend, in advance of a thunderstorm 
late last summer, a powerful wind came through the orchard, tear-
ing the fruit off the trees. Most of the trees lost a small amount of 
fruit: the dropped apples could be seen near the base of the tree.  
One small grouping of trees seemed to lose a much larger amount 
of fruit, however, and the drops were apparently scattered much 
further from the trees. Is it possible that some strange wind condi-
tions made the situation worse in this one spot? Or is just a matter 
of chance that a few trees in the same area all lost a bit more fruit 
than would be typical.
A systematic count of lost fruit underneath a random sample of 
trees would help to answer this question. The bulk of the trees 
would probably have each lost about the same amount, but more 
importantly, that “typical” group would give us a yardstick against 
which we could determine what would really count as unusual. 
When we found an unusual set of cases that was truly beyond the 
limits of typical, we could rightly focus our attention on these to 
try to understand the anomaly.
A third strategy for identifying data problems is to find out about 
risk and uncertainty. If you read the previous chapter you may re-
member that a basic function of information is to reduce uncer-
tainty. It is often valuable to reduce uncertainty because of how 
risk affects the things we all do. At work, at school, at home, life is 
full of risks: making a decision or failing to do so sets off a chain of 
events that may lead to something good or something not so good. 
It is difficult to say, but in general we would like to narrow things 
down in a way that maximizes the chances of a good outcome and 
minimizes the chance of a bad one. To do this, we need to make bet-
ter decisions and to make better decisions we need to reduce uncer-
tainty. By asking questions about risks and uncertainty (and deci-
sions) a data scientist can zero in on the problems that matter. You 
can even look at the previous two strategies - asking about the sto-
ries that comprise professional wisdom and asking about 
anomalies/unusual cases - in terms of the potential for reducing 
uncertainty and risk.
In the case of the farmer, much of the risk comes from the weather, 
and the uncertainty revolves around which countermeasures will 
be cost effective under prevailing conditions. Consuming lots of ex-
pensive oil in smudgepots on a night that turns out to be quite 
warm is a waste of resources that could make the difference be-
tween a profitable or an unprofitable year. So more precise and 
timely information about local weather conditions might be a key 
focus area for problem solving with data. What if a live stream of 
national weather service doppler radar could appear on the 
farmer’s smart phone? Let’s build an app for that...
16
“R” is an open source software program, developed by volunteers as a service to the community of 
scientists, researchers, and data analysts who use it. R is free to download and use. Lots of advice and 
guidance is available online to help users learn R, which is good because it is a powerful and complex 
program, in reality a full featured programming language dedicated to data.
CHAPTER 3
17
Getting Started with R
If you are new to computers, programming, and/or data science 
welcome to an exciting chapter that will open the door to the most 
powerful free data analytics tool ever created anywhere in the uni-
verse, no joke. On the other hand, if you are experienced with 
spreadsheets, statistical analysis, or accounting software you are 
probably thinking that this book has now gone off the deep end, 
never to return to sanity and all that is good and right in user inter-
face design. Both perspectives are reasonable. The “R” open source 
data analysis program is immensely powerful, flexible, and espe-
cially “extensible” (meaning that people can create new capabili-
ties for it quite easily). At the same time, R is “command line” ori-
ented, meaning that most of the work that one needs to perform is 
done through carefully crafted text instructions, many of which 
have tricky syntax (the punctuation and related rules for making a 
command that works). In addition, R is not especially good at giv-
ing feedback or error messages that help the user to repair mis-
takes or figure out what is wrong when results look funny. 
But there is a method to the madness here. One of the virtues of R 
as a teaching tool is that it hides very little. The successful user 
must fully understand what the “data situation” is or else the R 
commands will not work. With a spreadsheet, it is easy to type in a 
lot of numbers and a formula like =FORECAST() and a result pops 
into a cell like magic, whether it makes any sense or not. With R 
you have to know your data, know what you can do it, know how 
it has to be transformed, and know how to check for problems. Be-
cause R is a programming language, it also forces users to think 
about problems in terms of data objects, methods that can be ap-
plied to those objects, and procedures for applying those methods. 
These are important metaphors used in modern programming lan-
guages, and no data scientist can succeed without having at least a 
rudimentary understanding of how software is programmed, 
tested, and integrated into working systems. The extensibility of R 
means that new modules are being added all the time by volun-
teers: R was among the first analysis program to integrate capabili-
ties for drawing data directly from the Twitter(r) social media plat-
form. So you can be sure that whatever the next big development 
is in the world of data, that someone in the R community will start 
to develop a new “package” for R that will make use of it. Finally, 
the lessons one learns in working with R are almost universally ap-
plicable to other programs and environments. If one has mastered 
R, it is a relatively small step to get the hang of the SAS(r) statisti-
cal programming language and an even smaller step to being able 
to follow SPSS(r) syntax. (SAS and SPSS are two of the most widely 
used commercial statistical analysis programs). So with no need 
for any licensing fees paid by school, student, or teacher it is possi-
ble to learn the most powerful data analysis system in the universe 
and take those lessons with you no matter where you go. It will 
take a bit patience though, so please hang in there!
Let’s get started. Obviously you will need a computer. If you are 
working on a tablet device or smartphone, you may want to skip 
forward to the chapter on R-Studio, because regular old R has not 
yet been reconfigured to work on tablet devices (but there is a 
workaround for this that uses R-studio).  There are a few experi-
ments with web-based interfaces to R, like this one - 
http://dssm.unipa.it/R-php/R-php-1/R/
- but they are still in a 
very early stage. If your computer has the Windows(r), Mac-OS-
X(r) or a Linux operating system, there is a version of R waiting for 
you at http://cran.r-project.org
/. Download and install your own 
copy. If you sometimes have difficulties with installing new soft-
ware and you need some help, there is a wonderful little book by 
18
Thomas P. Hogan called, Bare Bones R: A Brief Introductory Guide 
that you might want to buy or borrow from your library. There are 
lots of sites online that also give help with installing R, although 
many of them are not oriented towards the inexperienced user. I 
searched online using the term  “help installing R” and I got a few 
good hits. One site that was quite informative for installing R on 
Windows was at “readthedocs.org,” and you can try to access it at 
this TinyUrl: http://tinyurl.com/872ngtt
.   For Mac users there is a 
video by Jeremy Taylor at Vimeo.com, 
http://vimeo.com/36697971
, that outlines both the initial installa-
tion on a Mac and a number of other optional steps for getting 
started. YouTube also had four videos that provide brief tutorials 
for installing R. Try search for “install R” in the YouTube search 
box. The rest of this chapter assumes that you have installed R and 
can run it on your computer as shown in the screenshot on this 
page. (Note that this screenshot is from the Mac version of R: if you 
are running Windows or Linux your R screen may appear slightly 
different from this.) Just for fun, one of the first things you can do 
when you have R running is to click on the color wheel and cus-
tomize the appearance of R. This screen shot uses Syracuse orange 
as a background color. The screenshot also shows a simple com-
mand to type that shows the most basic method of interaction with 
R. Notice near the bottom of the screenshot a greater than (“>”) 
symbol. This is the command prompt: When R is running and it is 
the active application on your desktop, if you type a command it 
appears after the “>” symbol. If you press the “enter” or “return” 
key, the command is sent to R for processing. When the processing 
is done, a result may appear just under the “>.” When R is done 
processing, another command prompt (“>”) appears and R is 
ready for your next command. In the screen shot, the user has 
typed “1+1” and pressed the enter key. The formula 1+1 is used by 
elementary school students everywhere to insult each other’s math 
skills, but R dutifully reports the result as 2. If you are a careful ob-
server, you will notice that just before the 2 there is a “1” in brack-
ets, like this: [1]. That [1] is a line number that helps to keep track 
of the results that R displays. Pretty pointless when only showing 
one line of results, but R likes to be consistent, so we will see quite 
a lot of those numbers in brackets as we dig deeper.
19
Documents you may be interested
Documents you may be interested