+
y ~ a + b
Include columns 
a
as well as 
b
-
y ~ a - b
Include 
a
but exclude 
b
:
y ~ a : b
Estimate the interaction of 
a
and 
b
*
y
~ a * b
Include columns as well as their interaction (that is, 
y ~ a + b + a:b
)
|
y ~ a | b
Estimate 
y
as a function of 
a
conditional on 
b
Many R functions allow you to use the formula interface, often in addition to
other ways of working with that function. For example, the 
aggregate()
function
also allows you to use formulae:
> aggregate(mpg ~ gear + am, data=cars, mean)
gear        am      mpg
1    3 Automatic 16.10667
2    4 Automatic 21.05000
3    4    Manual 26.27500
4    5    Manual 21.38000
Notice that the first argument is a formula and the second argument is the
source data frame. In this case, you tell aggregate to model 
mpg
as a function of
gear
as well as 
am
and to calculate the mean. This is the same example as in the
previous paragraph, but by using the formula interface your function becomes very
easy to read.
When you look at the Help file for a function, it’ll always be clear whether
you can use a formula with that function. For example, take a look at the Help
for 
?aggregate
. In the usage section of this page, you find the following text:
## S3 method for class ‘data.frame’
aggregate(x, by, FUN, ..., simplify = TRUE)
## S3 method for class ‘formula’
aggregate(formula, data, FUN, ...,
subset, na.action = na.omit)
This page lists a method for class 
data.frame
, as well as a method for class
formula
. This indicates that you can use either formulation.
You can find more (technical) information about 
formula
on its own Help page,
?formula
.
In the next section, we offer yet another example of using the 
formula
Pdf find text - search text inside PDF file in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Learn how to search text in PDF document and obtain text content and location information
text select tool pdf; pdf text select tool
Pdf find text - VB.NET PDF Text Search Library: search text inside PDF file in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Learn How to Search Text in PDF Document and Obtain Text Content and Location Information in VB.NET application
how to make a pdf document text searchable; converting pdf to searchable text format
interface for reshaping data.
Whipping Your Data into Shape
Often, a data analysis task boils down to creating tables with summary
information, such as aggregated totals, counts, or averages. Say, for example, you
have information about four games of Granny, Geraldine, and Gertrude:
Game  Venue Granny Geraldine Gertrude
1   1st Bruges     12         5       11
2   2nd  Ghent      4         4        5
3   3rd  Ghent      5         2        6
4   4th Bruges      6         4        7
Some more uses of formula
In Chapter 15, you get to do some statistical modeling using R. In particular,
you use 
aov()
to do an analysis of variance (ANOVA).
To do an ANOVA using the same data, try the following:
> aov(mpg ~ gear + am, data=cars)
To find out how to interpret the results of ANOVA, turn to Chapter 15.
You can use formulae to specify your model in just about every R statistical
modeling function, such as ANOVA and linear regression.
Another use of the formulae interface is in graphics, especially in the
package 
lattice
that you get to use in Chapter 19. To plot the data in our
example, try this:
> library(lattice)
> xyplot(mpg ~ gear + am, data=cars)
You now want to analyze the data and get a summary of the total scores for
each player in each venue:
variable Bruges Ghent
1    Granny     18     9
2 Geraldine      9     6
3  Gertrude     18    11
If you use spreadsheets, you may be familiar with the term pivot table. The
functionality in pivot tables is essentially the ability to group and aggregate data
and to perform calculations.
C# Word - Search and Find Text in Word
C# Word - Search and Find Text in Word. Learn How to Search Text in PDF Document and Obtain Text Content and Location Information. Overview.
pdf text searchable; select text in pdf file
C# PowerPoint - Search and Find Text in PowerPoint
C# PowerPoint - Search and Find Text in PowerPoint. Learn How to Search Text in PDF Document and Obtain Text Content and Location Information. Overview.
search pdf files for text; find and replace text in pdf
In the world of R, people usually refer to this as the process of reshaping data.
In base R, there is a function, 
reshape()
, that does this, but we discuss how to use
the add-on package 
reshape2
, which you can find on CRAN.
Understanding data in long and wide format
When talking about reshaping data, it’s important to recognize data in long
and wide formats. These visual metaphors describe two ways of representing the
same information.
You can recognize data in wide format by the fact that columns generally
represent groups. So, our example of basketball games is in wide format, because
there is a column for the baskets made by each of the participants
Game  Venue Granny Geraldine Gertrude
1   1st Bruges     12         5       11
2   2nd  Ghent      4         4        5
3   3rd  Ghent      5         2        6
4   4th Bruges      6         4        7
In contrast, have a look at the long format of exactly the same data:
Game  Venue  variable value
1    1st Bruges    Granny    12
2    2nd  Ghent    Granny     4
3    3rd  Ghent    Granny     5
4    4th Bruges    Granny     6
5    1st Bruges Geraldine     5
6    2nd  Ghent Geraldine     4
7    3rd  Ghent Geraldine     2
8    4th Bruges Geraldine     4
9    1st Bruges  Gertrude    11
10   2nd  Ghent  Gertrude     5
11   3rd  Ghent  Gertrude     6
12   4th Bruges  Gertrude     7
Notice how, in the long format, the three columns for Granny, Geraldine, and
Gertrude have disappeared. In their place, you now have a column called 
value
that contains the actual score and a column called 
variable
that links the score to
either of the three ladies.
C# Excel - Search and Find Text in Excel
Easy to search and find text content and get its location details. Allow to search defined Excel file page or the whole document. C# PDF: Example of Finding Text
how to make pdf text searchable; convert a scanned pdf to searchable text
VB.NET PDF File Merge Library: Merge, append PDF files in vb.net
When you have downloaded the RasterEdge Image SDK for .NET, you can unzip the package to find the RasterEdge.Imaging.PDF.dll in the bin folder under the root
select text in pdf; convert pdf to word searchable text
When converting data between long and wide formats, it’s important to be
able to distinguish identifier variables from measured variables:
Identifier variables: Identifier, or ID, variables identify the observations. Think
of these as the key that identifies your observations. (In database design, these
are called primary or secondary keys.)
Measured variables: This represents the measurements you observed.
In our example, the identifier variables are 
Game
and 
Venue
, while the
measured variables are the goals (that is, the columns 
Granny
Geraldine
, and
Gertrude
).
Getting started with the reshape2 package
Base R has a function, 
reshape()
, that works fine for data reshaping. However,
the original author of this function had in mind a specific use case for reshaping:
so-called longitudinal data.
Longitudinal research takes repeated observations of a research subject
over a period of time. For this reason, longitudinal data typically has the
variables associated with time.
The problem of data reshaping is far more generic than simply dealing with
longitudinal data. For this reason, Hadley Wickham wrote and released the
package 
reshape2
that contains several functions to convert data between long and
wide format.
To download and install 
reshape2
, use 
install.packages()
:
> install.packages(“reshape2”)
At the start of each new R session that uses 
reshape2
, you need to load the
package into memory using 
library()
:
> library(“reshape2”)
C# HTML5 Viewer: Load, View, Convert, Annotate and Edit Excel
HTML5 Viewer for C# .NET, users can convert Excel to PDF document, export C#.NET RasterEdge HTML5 Viewer also enable users to quickly find text content by
convert pdf to searchable text online; search pdf for text
VB.NET PDF File & Page Process Library SDK for vb.net, ASP.NET
document. If you find certain page in your PDF document is unnecessary, you may want to delete this page directly. Moreover, when
search multiple pdf files for text; how to select text on pdf
Now you can start. First, create some data:
>     goals <- data.frame(
+         Game = c(“1st”, “2nd”, “3rd”, “4th”),
+         Venue = c(“Bruges”, “Ghent”, “Ghent”, “Bruges”),
+         Granny = c(12, 4, 5, 6),
+         Geraldine = c(5, 4, 2, 4),
+     Gertrude = c(11, 5, 6, 7)
+ )
This constructs a wide data frame with five columns and four rows with the
scores of Granny, Geraldine, and Gertrude.
Melting data to long format
You’ve already seen the words wide and long as visual metaphors for the
shape of your data. In other words, wide data tends to have more columns and
fewer rows compared to long data. The reshape package extends this metaphor by
using the terminology of melt and cast:
To convert wide data to long, you melt it with the 
melt()
function.
To convert long data to wide, you cast it with the 
dcast()
function for data
frames or the 
acast()
function for arrays.
Try converting your wide data frame 
goals
to a long data frame using 
melt()
:
> mgoals <- melt(goals)
Using Game, Venue as id variables
The 
melt()
function tries to guess your identifier variables (if you don’t provide
them explicitly) and tells you which ones it used. By default, it considers all
categorical variables (that is, factors) as identifier variables. This is often a good
guess, and it’s exactly what we want in our example.
Specifying your identifier variables explicitly is a good idea. You do this by
adding an argument 
id.vars
, where you specify the column names of the
identifiers:
C# WPF Viewer: Load, View, Convert, Annotate and Edit Excel
function will help users to freely convert Excel document to PDF, Tiff and Text search and select functionalities and manipulate help to find text contents on
search pdf files for text programmatically; find text in pdf image
XDoc.Word for .NET, Support Processing Word document and Page in .
Able to view and edit Word rapidly. Convert. Convert Word to PDF. Convert Word to ODT. Text & Image Process. Search and find text in Word. Insert image to Word page
pdf find and replace text; pdf make text searchable
> mgoals <- melt(goals, id.vars=c(“Game”, “Venue”))
The new object, 
mgoals
, now contains your data in long format:
> mgoals
Game  Venue  variable value
1    1st Bruges    Granny    12
2    2nd  Ghent    Granny     4
3    3rd  Ghent    Granny     5
...
10   2nd  Ghent  Gertrude     5
11   3rd  Ghent  Gertrude     6
12   4th Bruges  Gertrude     7
Casting data to wide format
Now that you have a molten dataset (a dataset in long format), you’re ready
to reshape it. To illustrate that the process of reshaping keeps all your data intact,
try to reconstruct the original:
> dcast(mgoals,  Venue + Game ~ variable, sum)
Game  Venue Granny Geraldine Gertrude
1  1st Bruges     12         5       11
2  2nd  Ghent      4         4        5
3  3rd  Ghent      5         2        6
4  4th Bruges      6         4        7
Can you see how 
dcast()
takes a formula as its second argument? More about
that in a minute, but first inspect your results. It should match the original data
frame.
Next, you may want to do something more interesting — for example, create a
summary by venue and player.
You use the 
dcast()
function to cast a molten data frame. To be clear, you
use this to convert from a long format to a wide format, but you also can use
this to aggregate into intermediate formats, similar to the way a pivot table
works.
The 
dcast()
function takes three arguments:
data
: A molten data frame.
formula
: A formula that specifies how you want to cast the data. This formula
takes the form 
x_variable ~ y_variable
. But we simplified it to make a point.
You can use multiple x-variables, multiple y-variables and even z-variables. We
say more about that in a few paragraphs.
fun.aggregate
: A function to use if the casting formula results in data
aggregation (for example, 
length()
sum()
, or 
mean()
).
So, to get that summary of venue versus player, you need to use 
dcast()
with
a casting formula 
variable ~ Venue
. Note that the casting formula refers to
columns in your molten data frame:
> dcast(mgoals, variable ~ Venue , sum)
variable Bruges Ghent
1    Granny     18     9
2 Geraldine      9     6
3  Gertrude     18    11
If you want to get a table with the venue running down the rows and the
player across the columns, your casting formula should be 
Venue ~ variable
:
> dcast(mgoals,  Venue ~ variable , sum)
Venue Granny Geraldine Gertrude
1 Bruges     18         9       18
2  Ghent      9         6       11
It’s actually possible to have more complicated casting formulae. According to
the Help page for 
dcast()
, the casting formula takes this format:
x_variable + x_2 ~ y_variable + y_2 ~ z_variable ~ ...
Notice that you can combine several variables in each dimension with the plus
sign (
+
), and you separate each dimension with a tilde (
~
). Also, if you have two or
more tildes in the formula (that is, you include a z-variable), your result will be a
multidimensional array.
So, to get a summary of goals by 
Venue
, player (
variable
), and 
Game
, you do
the following:
> dcast(mgoals,  Venue + variable ~ Game , sum)
Venue  variable 1st 2nd 3rd 4th
1 Bruges    Granny  12   0   0   6
2 Bruges Geraldine   5   0   0   4
3 Bruges  Gertrude  11   0   0   7
4  Ghent    Granny   0   4   5   0
5  Ghent Geraldine   0   4   2   0
6  Ghent  Gertrude   0   5   6   0
One of the reasons you should understand data in long format is that both of
the graphics packages 
lattice
and 
ggplot2
make extensive use of long format
data. The benefit is that you can easily create plots of your data that compares
different subgroups. For example, the following code generates Figure 13-4:
> library(ggplot2)
> ggplot(mgoals, aes(x=variable, y=value, fill=Game)) + geom_bar()
Figure 13-4: Data in long (molten) format makes it easy to work with 
ggplot
graphics.
Chapter 14
Summarizing Data
In This Chapter
Using statistical measures to describe your variables
Using convenience functions to summarize variables and data frames
Comparing two groups
It’s time to get down to the core business of R: statistics! Because R is
designed to do just that, you can apply most common statistical techniques with a
single command. Moreover, in general, these commands are very well documented
both in the Help files and on the web. If you need more advanced methods or to
implement cutting-edge research, very often there’s already a package for that,
and many of these packages come with a book filled with examples.
It may seem rather odd that it takes us 14 chapters to come to the core
business of R. Well, it isn’t. The difficult part is very often getting the data in the
right format. After you’ve done that, R allows you to carry out the planned analyses
rather easily. To see just how easy it is, read on.
R allows you to do just about anything you want; also, the analysis you
carry out doesn’t make sense at all. R gives you the correct calculation, but
that’s not necessarily the right answer to your question. In fact, R is like a
professional workbench available for everybody. If you don’t know what you’re
doing, chances are, things will get bloody at some point. So, make sure you
know the background of the tests you apply on your data, or look for guidance
by a professional. All techniques you use in this chapter are explained in the
book Statistics For Dummies, 2nd Edition, by Deborah J. Rumsey, PhD (Wiley).
Starting with the Right Data
Before you attempt to describe your data, you have to make sure your data is
in the right format. This means
Making sure all your data is contained in a data frame (or in a vector if it’s a
single variable)
Ensuring that all the variables are of the correct type
Checking that the values are all processed correctly
The previous chapters give you a whole set of tools for doing exactly these
things. We can’t stress enough how important this is. Many of the mistakes in
data analysis originate from wrongly formatted data.
Using factors or numeric data
Some data can have only a limited number of different values. For example,
people can be either male or female, and you can describe most hair types with
only a few colors. Sometimes more values are theoretically possible but not
realistic. For example, cars can have more than 16 cylinders in their engines, but
you won’t find many of them. In one way or another, all this data can be seen as
categorical. By this definition, categorical data also includes ordinal data (see
Chapter 5).
On the other hand, you have data that can have an unlimited amount of
possible values. This doesn’t necessarily mean that the values can be any value
you like. For example, the mileage of a car is expressed in miles per gallon, often
rounded to the whole mile. Yet, the real value will be slightly different for every
car. The only thing that defines how many possible values you allow is the
precision with which you express the data. Data that can be expressed with any
chosen level of precision is continuous. Both the interval-scaled data and the ratio-
scaled data described in Chapter 5 are usually continuous data.
The distinction between categorical and continuous data isn’t always clear
though. Age is, in essence, a continuous variable, but it’s often expressed in the
number of years since birth. You still have a lot of possible values if you do that,
but what happens if you look at the age of the kids at your local high school?
Suddenly you have only five, maybe six, different values in your data. At that point,
you may get more out of your analysis if you treat that data as categorical.
When describing your data, you need to make the distinction between data
Documents you may be interested
Documents you may be interested