object at the command line to make sure that it looks the way it 
should. Four variables, each one with five values in it. Two of the 
variables are character data and two of the variables are integer 
data. Here are those two extra commands in case you need them:
myFamilyGenders <- c("Male","Female","Female","Male","Female")
myFamilyWeights <- c(188,136,83,61,44)
Now we are ready to tackle the dataframe. In R, a dataframe is a 
list (of columns), where each element in the list is a vector. Each 
vector is the same length, which is how we get our nice rectangular  
row and column setup, and generally each vector also has its own 
name. The command to make a data frame is very simple:
myFamily <- data.frame(myFamilyNames, + 
myFamilyAges, myFamilyGenders, myFamilyWeights)
Look out! We’re starting to get commands that are long enough 
that they break onto more than one line. The + at the end of the 
first line tells R to wait for more input on the next line before trying 
to process the command. If you want to, you can type the whole 
thing as one line in R, but if you do, just leave out the plus sign. 
Anyway, the data.frame() function makes a dataframe from the 
four vectors that we previously typed in. Notice that we have also 
used the assignment arrow to make a new stored location where R 
puts the data frame. This new data object, called myFamily, is our 
dataframe. Once you have gotten that command to work, type   
myFamily at the command line to get a report back of what the 
data frame contains. Here’s the output you should see:
myFamilyNames myFamilyAges myFamilyGenders myFamilyWeights
1           Dad           43            Male             188
2           Mom           42          Female             136
3           Sis           12          Female              83
4           Bro            8            Male              61
5           Dog            5          Female              44
This looks great. Notice that R has put row numbers in front of 
each row of our data. These are different from the output line num-
bers we saw in brackets before, because these are actual “indices” 
into the data frame. In other words, they are the row numbers that 
R uses to keep track of which row a particular piece of data is in.
With a small data set like this one, only five rows, it is pretty easy 
just to take a look at all of the data. But when we get to a bigger 
data set this won’t be practical. We need to have other ways of sum-
marizing what we have. The first method reveals the type of “struc-
ture” that R has used to store a data object. 
> str(myFamily)
5 obs. of  4 variables:
$ myFamilyNames  : Factor w/ 5 levels 
"Bro","Dad","Dog",..: 2 4 5 1 3
$ myFamilyAges   : num  43 42 12 8 5
$ myFamilyGenders: Factor w/ 2 levels 
"Female","Male": 2 1 1 2 1
$ myFamilyWeights: num  188 136 83 61 44
Take note that for the first time, the example shows the command 
prompt “>” in order to differentiate the command from the output 
that follows. You don’t need to type this: R provides it whenever it 
is ready to receive new input. From now on in the book, there will 
Pdf rotate just 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 page order reverse; rotate all pages in pdf
Pdf rotate just 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
how to rotate one page in pdf document; saving rotated pdf pages
be examples of R commands and output that are mixed together, 
so always be on the lookout for “>” because the command after 
that is what you have to type.
OK, so the function “str()” reveals the structure of the data object 
that you name between the parentheses. In this case we pretty well 
knew that myFamily was a data frame because we just set that up 
in a previous command. In the future, however, we will run into 
many situations where we are not sure how R has created a data 
object, so it is important to know str() so that you can ask R to re-
port what an object is at any time.
In the first line of output we have the confirmation that myFamily 
is a data frame as well as an indication that there are five observa-
tions (“obs.” which is another word that statisticians use instead of 
cases or instances) and four variables. After that first line of output, 
we have four sections that each begin with “$”. For each of the four 
variables, these sections describe the component columns of the 
myFamily dataframe object.
Each of the four variables has a “mode” or type that is reported by 
R right after the colon on the line that names the variable:
$ myFamilyGenders: Factor w/ 2 levels 
For example, myFamilyGenders is shown as a “Factor.” In the ter-
minology that R uses, Factor refers to a special type of label that 
can be used to identify and organize groups of cases. R has organ-
ized these labels alphabetically and then listed out the first few 
cases (because our dataframe is so small it actually is showing us 
all of the cases). For myFamilyGenders we see that there are two 
“levels,” meaning that there are two different options: female and 
male. R assigns a number, starting with one, to each of these levels, 
so every case that is “Female” gets assigned a 1 and every case that 
is “Male” gets assigned a 2 (because Female comes before Male in 
the alphabet, so Female is the first Factor label, so it gets a 1). If you 
have your thinking cap on, you may be wondering why we started 
out by typing in small strings of text, like “Male,” but then R has 
gone ahead and converted these small pieces of text into numbers 
that it calls “Factors.” The reason for this lies in the statistical ori-
gins of R. For years, researchers have done things like calling an ex-
perimental group “Exp” and a control, group “Ctl” without intend-
ing to use these small strings of text for anything other than labels. 
So R assumes, unless you tell it otherwise, that when you type in a 
short string like “Male” that you are referring to the label of a 
group, and that R should prepare for the use of Male as a “Level” 
of a “Factor.”  When you don’t want this to happen you can in-
struct R to stop doing this with an option on the data.frame() func-
tion: stringsAsFactors=FALSE. We will look with more detail at op-
tions and defaults a little later on.
Phew, that was complicated! By contrast, our two numeric vari-
ables, myFamilyAges and myFamilyWeights, are very simple. You 
can see that after the colon the mode is shown as “num” (which 
stands for numeric) and that the first few values are reported:
$ myFamilyAges   : num  43 42 12 8 5
Putting it altogether, we have pretty complete information about 
the myFamily dataframe and we are just about ready to do some 
more work with it. We have seen firsthand that R has some pretty 
cryptic labels for things as well as some obscure strategies for con-
verting this to that. R was designed for experts, rather than nov-
C# PDF: C# Code to Process PDF Document Page Using C#.NET PDF
Able to separate one PDF file into two PDF PDF page processing functions by just following attached C# PDF Page Processing: Rotate PDF Page - detailed guidance
how to rotate one page in a pdf file; pdf save rotated pages
C# PDF Page Move Library: re-order PDF pages in C#.net, ASP.NET
library control, developers can swap or adjust the order of all or several PDF document pages, or just change the position of certain one PDF page in an
rotate individual pages in pdf; rotate pages in pdf online
ices, so we will just have to take our lumps so that one day we can 
be experts too.
Next, we will examine another very useful function called sum-
mary(). Summary() provides some overlapping information to str() 
but also goes a little bit further, particularly with numeric vari-
ables. Here’s what we get:
> summary(myFamily)
myFamilyNames  myFamilyAges
Bro: 1  
: 5
Dad: 1  
1st Qu. : 8
Dog: 1  
Median  : 12
Mom: 1  
: 22 
Sis: 1         3rd Qu. : 42 
myFamilyGenders myFamilyWeights
Female : 3  
: 44
: 2  
1st Qu. : 61.0
Median  : 83.0
: 102.4
3rd Qu. : 136.0
: 188.0  
In order to fit on the page properly, these columns have been reor-
ganized a bit. The name of a column/variable, sits up above the in-
formation that pertains to it, and each block of information is inde-
pendent of the others (so it is meaningless, for instance, that “Bro: 
1” and “Min.” happen to be on the same line of output). Notice, as 
with str(), that the output is quite different depending upon 
whether we are talking about a Factor, like myFamilyNames or 
myFamilyGenders, versus a numeric variable like myFamilyAges 
and myFamilyWeights. The columns for the Factors list out a few 
of the Factor names along with the number of occurrences of cases 
that  are coded with that factor. So for instance, under 
myFamilyGenders it shows three females and two males. In con-
trast, for the numeric variables we get five different calculated 
quantities that help to summarize the variable. There’s no time like 
the present to start to learn about what these are, so here goes:
“Min.” refers to the minimum or lowest value among all the 
cases. For this dataframe, 5 is the age of the dog and it is the low-
est age of all of the family members.
“1st Qu.” refers to the dividing line at the top of the first quartile. 
If we took all the cases and lined them up side by side in order 
of age (or weight) we could then divide up the whole into four 
groups, where each group had the same number of observations. 
25% of cases 
with the 
values here
25% of cases 
with low 
values here
25% of cases 
with high 
values here
25% of cases 
with the 
values here
Process Images in Web Image Viewer | Online Tutorials
Easy to rotate the current picture or file page through just a button click; Commonly used document types are supported, including PDF, multi-page TIFF and
rotate pdf pages; pdf rotate one page
VB.NET Create PDF Library SDK to convert PDF from other file
be easily integrated into many MS Visual Studio .NET applications to create PDF with just a few VB.NET: Create a New PDF Document with One Blank Page.
rotate single page in pdf; how to change page orientation in pdf document
Just like a number line, the smallest cases would be on the left 
with the largest on the right. If we’re looking at myFamilyAges, 
the leftmost group, which contains one quarter of all the cases, 
would start with five on the low end (the dog) and would have 
eight on the high end (Bro). So the “first quartile” is the value of 
age (or another variable) that divides the first quarter of the 
cases from the other three quarters. Note that if we don’t have a 
number of cases that divides evenly by four, the value is an ap-
Median refers to the value of the case that splits the whole group 
in half, with half of the cases having higher values and half hav-
ing lower values. If you think about it a little bit, the median is 
also the dividing line that separates the second quartile from the 
third quartile. 
Mean, as we have learned before, is the numeric average of all of 
the values. For instance, the average age in the family is reported 
as 22.
“3rd Qu.” is the third quartile. If you remember back to the first 
quartile and the median, this is the third and final dividing line 
that splits up all of the cases into four equal sized parts. You may 
be wondering about these quartiles and what they are useful for. 
Statisticians like them because they give a quick sense of the 
shape of the distribution. Everyone has the experience of sorting 
and dividing things up - pieces of pizza, playing cards into 
hands, a bunch of players into teams - and it is easy for most peo-
ple to visualize four equal sized groups and useful to know how 
high you need to go in age or weight (or another variable) to get 
to the next dividing line between the groups. 
Finally, “Max” is the maximum value and as you might expect 
displays the highest value among all of the available cases. For 
example, in this dataframe Dad has the highest weight: 188. 
Seems like a pretty trim guy.
Just one more topic to pack in before ending this chapter: How to 
access the stored variables in our new dataframe. R stores the data-
frame as a list of vectors and we can use the name of the dataframe 
together with the name of a vector to refer to each one using the 
“$” to connect the two labels like this:
> myFamily$myFamilyAges
[1] 43 42 12  8  5
If you’re alert you might wonder why we went to the trouble of 
typing out that big long thing with the $ in the middle, when we 
could have just referred to “myFamilyAges” as we did earlier 
when we were setting up the data. Well, this is a very important 
point. When we created the myFamily dataframe, we copied all of 
the information from the individual vectors that we had before 
into a brand new storage space. So now that we have created the 
myFamily dataframe, myFamilyData$myFamilyAges actually re-
fers to a completely separate (but so far identical) vector of values. 
You can prove this to yourself very easily, and you should, by add-
ing some data to the original vector, myFamilyAges:
> myFamilyAges <- c(myFamilyAges, 11)
> myFamilyAges
[1] 43 42 12  8  5 11
> myFamily$myFamilyAges
VB.NET PDF Page Extract Library: copy, paste, cut PDF pages in vb.
functions, including extracting one or more page(s) from PDF document. To utilize the PDF page(s) extraction function in VB.NET application, you just need to
pdf rotate single page and save; rotate pdf page permanently
VB Imaging - VB MSI Plessey Barcode Tutorial
Resolution = 96 'set rotation barcode.Rotate = Rotate.Rotate0 barcode 100F, 100F)) docx.Save("C:\\Sample_Barcode.pdf"). Below is just an example of generating an
how to rotate a page in pdf and save it; pdf rotate pages separately
[1] 43 42 12  8  5
Look very closely at the five lines above. In the first line, we use 
the c() command to add the value 11 to the original list of ages that 
we had stored in myFamilyAges (perhaps we have adopted an 
older cat into the family). In the second line we ask R to report 
what the vector myFamilyAges now contains. Dutifully, on the 
third line above, R reports that myFamilyAges now contains the 
original five values and the new value of 11 on the end of the list. 
When we ask R to report myFamily$myFamilyAges, however, we 
still have the original list of five values only. This shows that the da-
taframe and its component columns/vectors is now a completely 
independent piece of data. We must be very careful, if we estab-
lished a dataframe that we want to use for subsequent analysis, 
that we don’t make a mistake and keep using some of the original 
data from which we assembled the dataframe.
Here’s a puzzle that follows on from this question. We have a nice 
dataframe with five observations and four variables. This is a rec-
tangular shaped data set, as we discussed at the beginning of the 
chapter. What if we tried to add on a new piece of data on the end 
of one of the variables? In other words, what if we tried something 
like this command:
myFamily$myFamilyAges<-c(myFamily$myFamilyAges, 11)
If this worked, we would have a pretty weird situation: The vari-
able in the dataframe that contained the family members’ ages 
would all of a sudden have one more observation than the other 
variables: no more perfect rectangle! Try it out and see what hap-
pens. The result helps to illuminate how R approaches situations 
like this. 
So what new skills and knowledge do we have at this point? Here 
are a few of the key points from this chapter:
In R, as in other programs, a vector is a list of elements/things 
that are all of the same kind, or what R refers to as a mode. For 
example, a vector of mode “numeric” would contain only num-
Statisticians, database experts and others like to work with rec-
tangular datasets where the rows are cases or instances and the 
columns are variables or attributes. 
In R, one of the typical ways of storing these rectangular struc-
tures is in an object known as a dataframe. Technically speaking 
a dataframe is a list of vectors where each vector has the exact 
same number of elements as the others (making a nice rectan-
In R, the data.frame() function organizes a set of vectors into a 
dataframe. A dataframe is a conventional, rectangular shaped 
data object where each column is a vector of uniform mode and 
having the same number of elements as the other columns in the 
dataframe. Data are copied from the original source vectors into 
new storage space. The variables/columns of the dataframe can 
be accessed using “$” to connect the name of the dataframe to 
the name of the variable/column.
The str() and summary() functions can be used to reveal the 
structure and contents of a dataframe (as well as of other data ob-
jects stored by R). The str() function shows the structure of a data 
object, while summary() provides an numerical summaries of nu-
meric variables and overviews of non-numeric variables.
VB.NET TIFF: Rotate TIFF Page by Using RaterEdge .NET TIFF
specific formats are: JPEG, PNG, GIF, BMP, PDF, Word (Docx the target TIFF page(s) accurately and quickly; Rotate single or TIFF page(s) at one time just as you
how to rotate all pages in pdf at once; change orientation of pdf page
C# Imaging - C# MSI Plessey Barcode Tutorial
96;// set resolution barcode.Rotate = Rotate.Rotate0;// set 100F, 100F)); docx.Save(outputDirectory + "Sample_Barcode.pdf"); }. Below is just an example of
reverse pdf page order online; rotate pdf page
A factor is a labeling system often used to organize groups of 
cases or observations. In R, as well as in many other software 
programs, a factor is represented internally with a numeric ID 
number, but factors also typically have labels like “Male” and 
“Female” or “Experiment” and “Control.” Factors always have 
“levels,” and these are the different groups that the factor signi-
fies. For example, if a factor variable called Gender codes all 
cases as either “Male” or “Female” then that factor has exactly 
two levels. 
Quartiles are a division of a sorted vector into four evenly sized 
groups. The first quartile contains the lowest-valued elements, 
for example the lightest weights, whereas the fourth quartile con-
tains the highest-valued items. Because there are four groups, 
there are three dividing lines that separate them. The middle di-
viding line that splits the vector exactly in half is the median. 
The term “first quartile” often refers to the dividing line to the 
left of the median that splits up the lower two quarters and the 
value of the first quartile is the value of the element of the vector 
that sits right at that dividing line. Third quartile is the same 
idea, but to the right of the median and splitting up the two 
higher quarters.
Min and max are often used as abbreviations for minimum and 
maximum and these are the terms used for the highest and low-
est values in a vector. Bonus: The “range” of a set of numbers is 
the maximum minus the minimum.
The mean is the same thing that most people think of as the aver-
age. Bonus: The mean and the median are both measures of 
what statisticians call “central tendency.”
Chapter Challenge
Create another variable containing information about family mem-
bers (for example, each family member’s estimated IQ; you can 
make up the data). Take that new variable and put it in the existing 
Review 5.1 Rows and columns
Check Answer
Question 1 of  7
What is the name of the data object that R uses to store a rec-
tangular dataset of cases and variables? 
A. A list
B. A mode
C. A vector
D. A dataframe
VB.NET Word: How to Process MS Word in VB.NET Library in .NET
How to Rotate, Merge Word Documents Within VB.NET of the web page, here we just describe each Word powerful & profession imaging controls, PDF document, image
save pdf after rotating pages; how to save a pdf after rotating pages
C# Image Convert: How to Convert MS PowerPoint to Jpeg, Png, Bmp
RasterEdge.XDoc.PDF.dll. The last one is for rendering PowerPoint file to raster image Gif. This demo code just converts PowerPoint first page to Gif image.
pdf rotate page; pdf rotate single page reader
myFamily dataframe. Rerun the summary() function on myFamily 
to get descriptive information on your new variable.
R Functions Used in This Chapter 
c()! !
Concatenates data elements together
<-! !
Assignment arrow
data.frame()! Makes a dataframe from separate vectors
str()! !
Reports the structure of a data object
Reports data modes/types and a data overview
Many of the simplest and most practical methods for summarizing collections of numbers come to us 
from four guys who were born in the 1800s at the start of the industrial revolution. A considerable 
amount of the work they did was focused on solving real world problems in manufacturing and 
agriculture by using data to describe and draw inferences from what they observed.
Beer, Farms, and Peas
The end of the 1800s and the early 1900s were a time of astonishing 
progress in mathematics and science. Given enough time, paper, 
and pencils, scientists and mathematicians of that age imagined 
that just about any problem facing humankind -  including the limi-
tations of people themselves - could be measured, broken down, 
analyzed, and rebuilt to become more efficient. Four Englishmen 
who epitomized both this scientific progress and these idealistic be-
liefs were Francis Galton, Karl Pearson, William Sealy Gosset, and 
Ronald Fisher. 
First on the scene was Francis Galton, a half-cousin to the more 
widely known Charles Darwin, but quite the intellectual force him-
self. Galton was an English gentleman of independent means who 
studied Latin, Greek, medicine, and mathematics, and who made a 
name for himself as an African explorer. He is most widely known 
as a proponent of “eugenics” and is credited with coining the term. 
Eugenics is the idea that the human race could be improved 
through selective breeding. Galton studied heredity in peas, rab-
bits, and people and concluded that certain people should be paid 
to get married and have children because their offspring would im-
prove the human race. These ideas were later horribly misused in 
the 20th century, most notably by the Nazis as a justification for kill-
ing people because they belonged to supposedly inferior races. Set-
ting eugenics aside, however, Galton made several notable and 
valuable contributions to mathematics and statistics, in particular 
illuminating two basic techniques that are widely used today: corre-
lation and regression. 
For all his studying and theorizing, Galton was not an outstanding 
mathematician, but he had a junior partner, Karl Pearson, who is 
often credited with founding the field of mathematical statistics. 
Pearson refined the math behind correlation and regression and 
did a lot else besides to contribute to our modern abilities to man-
age numbers. Like Galton, Pearson was a proponent of eugenics, 
but he also is credited with inspiring some of Einstein’s thoughts 
about relativity and was an early advocate of women’s rights.  
Next to the statistical party was William Sealy Gosset, a wizard at 
both math and chemistry. It was probably the latter expertise that 
led the Guinness Brewery in Dublin Ireland to hire Gosset after col-
lege. As a forward looking business, the Guinness brewery was on 
the lookout for ways of making batches of beer more consistent in 
quality. Gosset stepped in and developed what we now refer to as 
small sample statistical techniques - ways of generalizing from the 
results of a relatively few observations. Of course, brewing a batch 
of beer is a time consuming and expensive process, so in order to 
draw conclusions from experimental methods applied to just a few 
batches, Gosset had to figure out the role of chance in determining 
how a batch of beer had turned out. Guinness frowned upon aca-
demic publications, so Gosset had to publish his results under the 
modest pseudonym, “Student.” If you ever hear someone discuss-
ing the “Student’s t-Test,” that is where the name came from. 
Last but not least among the born-in-the-1800s bunch was Ronald 
Fisher, another mathematician who also studied the natural sci-
ences, in his case biology and genetics. Unlike Galton, Fisher was 
not a gentleman of independent means, in fact, during his early 
married life he and his wife struggled as subsistence farmers. One 
of Fisher’s professional postings was to an agricultural research 
farm called Rothhamsted Experimental Station. Here, he had ac-
cess to data about variations in crop yield that led to his develop-
ment of an essential statistical technique known as the analysis of 
variance. Fisher also pioneered the area of experimental design, 
which includes matters of factors, levels, experimental groups, and 
control groups that we noted in the previous chapter.
Of course, these four are certainly not the only 19th and 20th cen-
tury mathematicians to have made substantial contributions to 
practical statistics, but they are notable with respect to the applica-
tions of mathematics and statistics to the other sciences (and “Beer, 
Farms, and Peas” makes a good chapter title as well).
One of the critical distinctions woven throughout the work of these 
four is between the “sample” of data that you have available to ana-
lyze and the larger “population” of possible cases that may or do 
exist. When Gosset ran batches of beer at the brewery, he knew 
that it was impractical to run every possible batch of beer with 
every possible variation in recipe and preparation. Gosset knew 
that he had to run a few batches, describe what he had found and 
then generalize or infer what might happen in future batches. This 
is a fundamental aspect of working with all types and amounts of 
data: Whatever data you have, there’s always more out there. 
There’s data that you might have collected by changing the way 
things are done or the way things are measured. There’s future 
data that hasn’t been collected yet and might never be collected. 
There’s even data that we might have gotten using the exact same 
strategies we did use, but that would have come out subtly differ-
ent just due to randomness. Whatever data you have, it is just a 
snapshot or “sample” of what might be out there. This leads us to 
the conclusion that we can never, ever 100% trust the data we have. 
We must always hold back and keep in mind that there is always 
uncertainty in data. A lot of the power and goodness in statistics 
comes from the capabilities that people like Fisher developed to 
help us characterize and quantify that uncertainty and for us to 
know when to guard against putting too much stock in what a sam-
ple of data have to say. So remember that while we can always de-
scribe the sample of data we have, the real trick is to infer what 
the data may mean when generalized to the larger population of 
data that we don’t have. This is the key distinction between de-
scriptive and inferential statistics. 
We have already encountered several descriptive statistics in previ-
ous chapters, but for the sake of practice here they are again, this 
time with the more detailed definitions:
The mean (technically the arithmetic mean), a measure of central 
tendency that is calculated by adding together all of the observa-
tions and dividing by the number of observations.
The median, another measure of central tendency, but one that 
cannot be directly calculated. Instead, you make a sorted list of 
all of the observations in the sample, then go halfway up that 
list. Whatever the value of the observation is at the halfway 
point, that is the median.
The range, which is a measure of “dispersion” - how spread out 
a bunch of numbers in a sample are - calculated by subtracting 
the lowest value from the highest value.
To this list we should add three more that you will run into in a va-
riety of situations:
The mode, another measure of central tendency. The mode is the 
value that occurs most often in a sample of data. Like the me-
dian, the mode cannot be directly calculated. You just have to 
Documents you may be interested
Documents you may be interested