lexicographically sorted, unique values of 
x
.
labels
: Another optional vector that, by default, takes the same values as
levels
. You can use this argument to rename your levels, as we explain in the
next paragraph.
The fact that you can supply both levels and labels to 
factor
can lead to
confusion. Just remember that 
levels
refers to the input values of 
x
, while
labels
refers to the output values of the new factor.
Consider the following example of a vector consisting of compass directions:
> directions <- c(“North”, “East”, “South”, “South”)
Notice that this vector contains the value 
“South”
twice and lacks the value
“West”
. First, convert 
directions
to a factor:
> factor(directions)
[1] North East  South South
Levels: East North South
Notice that the levels of your new factor does not contain the value 
“West”
,
which is as expected. In practice, however, it makes sense to have all the possible
compass directions as levels of your factor. To add the missing level, you specify
the 
levels
arguments of 
factor
:
> factor(directions, levels= c(“North”, “East”, “South”, “West”))
[1] North East  South South
Levels: North East South West
As you can see, the values are still the same but this time the levels also
contain 
“West”
.
Now imagine that you actually prefer to have abbreviated names for the
levels. To do this, you make use of the 
labels
argument:
> factor(directions, levels= c(“North”, “East”, “South”, “West”),
labels=c(“N”, “E”, “S”, “W”))
[1] N E S S
Levels: N E S W
Pdf text searchable - 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
find text in pdf image; pdf find and replace text
Pdf text searchable - 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
converting pdf to searchable text format; convert pdf to word searchable text
Converting a factor
Sometimes you need to explicitly convert factors to either text or numbers. To
do this, you use the functions 
as.character()
or 
as.numeric()
.
First, convert your 
directions
vector into a factor called 
directions.factor
(as you saw earlier):
> directions <- c(“North”, “East”, “South”, “South”)
> directions.factor <- factor(directions)
> directions.factor
[1] North East  South South
Levels: East North South
Use 
as.character()
to convert a factor to a character vector:
> as.character(directions.factor)
[1] “North” “East”  “South” “South”
Use 
as.numeric()
to convert a factor to a numeric vector. Note that this will
return the numeric codes that correspond to the factor levels. For example, 
“East”
corresponds to 
1
“North”
corresponds to 
2
, and so forth:
> as.numeric(directions.factor)
[1] 2 1 3 3
Be very careful when you convert factors with numeric levels to a numeric
vector. The results may not be what you expect.
For example, imagine you have a vector that indicates some test score results
with the values 
c(9, 8, 10, 8, 9)
, which you convert to a factor:
> numbers <- factor(c(9, 8, 10, 8, 9))
To look at the internal representation of 
numbers
, use 
str()
:
> str(numbers)
Factor w/ 3 levels “8”,”9”,”10”: 2 1 3 1 2
This indicates that R stores the values as 
c(2, 1, 3, 1, 2)
with associated
levels of 
c(“8”, “9”, “10”)
. Figure 5-2 gives a graphical representation of this
C# PDF Convert to Text SDK: Convert PDF to txt files in C#.net
NET project. Powerful .NET control for batch converting PDF to editable & searchable text formats in C# class. Free evaluation library
search text in multiple pdf; text select tool pdf
C# Create PDF Library SDK to convert PDF from other file formats
The PDF document file created by RasterEdge C# PDF document creator library is searchable and can be fully populated with editable text and graphics
search text in pdf using java; search pdf documents for text
difference between the levels and the internal representation.
Figure 5-2: A visual comparison between a numeric vector and a factor.
If you want to convert 
numbers
to a character vector, the results are pretty
much as you would expect:
> as.character(numbers)
[1] “9”  “8”  “10” “8”  “9”
However, if you simply use 
as. numeric()
, your result is a vector of the
internal level representations of your factor and not the original values:
> as.numeric(numbers)
[1] 2 1 3 1 2
The R help at 
?factor
describes a solution to this problem. The solution is
to index the levels by the factor itself, and then to convert to numeric:
> as.numeric(as.character(numbers))
[1]  9  8 10  8  9
This is an example of nested functions in R, in which you pass the results of
one function to a second function. Nested functions are a bit like the Russian
nesting dolls, where each toy is inside the next:
The inner function, 
as.character(numbers)
, contains the text 
c(“8”, “9”,
“10”)
.
The outer function, 
as.numeric(...)
, does the final conversion to 
c(9, 8, 10,
8, 9)
.
Looking at levels
VB.NET Image: Robust OCR Recognition SDK for VB.NET, .NET Image
for VB.NET provides users fast and accurate image recognition function, which converts scanned images into searchable text formats, such as PDF, PDF/A, WORD
how to select text in pdf image; pdf text search tool
VB.NET PDF Convert to Text SDK: Convert PDF to txt files in vb.net
keeping original layout. VB.NET control for batch converting PDF to editable & searchable text formats. Support .NET WinForms, ASP
pdf text select tool; pdf make text searchable
To look a little bit under the hood of the structure of a factor, use the 
str()
function:
> str(state.region)
Factor w/ 4 levels “Northeast”,”South”,..: 2 4 4 2 4 4 1 2 2 2 ...
R reports the structure of 
state.region
as a factor with four levels. You can
see that the first two levels are 
“Northeast”
and 
“South”,
but these levels are
represented as integers 1, 2, 3, and 4.
Factors are a convenient way to describe categorical data. Internally a factor is
stored as a numeric value associated with each level. This means you can set and
investigate the levels of a factor separately from the values of the factor.
To look at the levels of a factor, you use the 
levels()
function. For example,
to extract the factor levels of 
state.region
, use the following:
> levels(state.region)
[1] “Northeast”     “South”
[3] “North Central” “West”
Because the values of the factor are linked to the levels, when you change the
levels, you also indirectly change the values themselves. To make this clear,
change the levels of 
state.region
to the values 
“NE”
“S”
“NC”
, and 
“W”
:
> levels(state.region) <- c(“NE”, “S”, “NC”, “W”)
> head(state.region)
[1] S W W S W W
Levels: NE S NC W
Sometimes it’s useful to know the number of levels of a factor. The
convenience function 
nlevels()
extracts the number of levels from a factor:
> nlevels(state.region)
[1] 4
Because the levels of a factor are internally stored by R as a vector, you also
can extract the number of levels using 
length
:
> length(levels(state.region))
[1] 4
For the very same reason, you can index the levels of a factor using standard
C# HTML5 Viewer: Load, View, Convert, Annotate and Edit Word
C# users can convert Convert Microsoft Office Word to searchable PDF online, create multi empowered to add annotations to Word, such as add text annotations to
make pdf text searchable; how to make a pdf file text searchable
Online Convert PDF to Text file. Best free online PDF txt
PDF document conversion SDK provides reliable and effective .NET solution for Visual C# developers to convert PDF document to editable & searchable text file.
searching pdf files for text; how to make pdf text searchable
vector subsisting rules. For example, to extract the second and third factor levels,
use the following:
> levels(state.region)[2:3]
[1] “S”  “NC”
Distinguishing data types
In the field of statistics, being able to distinguish between variables of
different types is very important. The type of data very often determines the type
of analysis that can be performed. As a result, R offers the ability to explicitly
classify data as follows:
Nominal data: This type of data, which you represent in R using factors,
distinguishes between different categories, but there is no implied order
between categories. Examples of nominal data are colors (red, green, blue),
gender (male, female), and nationality (British, French, Japanese).
Ordinal data: Ordinal data is distinguished by the fact that there is some kind of
natural order between elements but no indication of the relative size difference.
Any kind of data that is possible to rank in order but not give exact values to is
ordinal. For example, low < medium < high describes data that is ordered with
three levels.
In market research, it’s very common to use a five-point scale to measure
perceptions: strongly disagree < disagree < neutral < agree < strongly agree. This
is also an example of ordinal data.
Another example is the use of the names of colors to indicate order, such as red <
amber < green to indicate project status.
In R, you use ordered factors to describe ordinal data. For more on ordered
factors, see the “Working with ordered factors” section, later in this chapter.
Numeric data: You have numeric data when you can describe your data with
numbers (for example, length, weight, or count). Numeric data has two
subcategories.
VB.NET Create PDF from Text to convert txt files to PDF in vb.net
Best VB.NET adobe text to PDF converter library for Visual Studio .NET project. Batch convert editable & searchable PDF document from TXT formats in VB.NET
convert pdf to searchable text online; how to select text in pdf reader
C# Create PDF from Text to convert txt files to PDF in C#.net, ASP
Visual Studio .NET project. .NET control for batch converting text formats to editable & searchable PDF document. Free .NET library for
pdf editor with search and replace text; text searchable pdf file
• Interval scaled data: You have interval scaled data when the interval between
adjacent units of measurement is the same, but the zero point is arbitrary. An
everyday example of interval scaled data is our calendar system. Each year has
the same length, but the zero point is arbitrary. In other words, time didn’t start
in the year zero — we simply use a convenient year to start counting. This
means you can add and subtract dates (and all other types of interval scaled
data), but you can’t meaningfully divide dates. Other examples include
longitude, as well as anything else where there can be disagreement about
where the starting point is.
Other examples of interval scaled data can be found in social science research such
as market research.
In R you can use integer or numeric objects to represent interval scaled data.
• Ratio scaled data: This is data where all kinds of mathematical operations are
allowed, in particular the ability to multiply and divide (in other words, take
ratios). Most data in physical sciences are ratio scaled — for example, length,
mass, and speed. In R, you use numeric objects to represent ratio scaled data.
Working with ordered factors
Sometimes data has some kind of natural order in which some elements are in
some sense “better” or “worse” than other elements, but at the same time it’s
impossible to ascribe a meaningful value to these. An example is any situation
where project status is described as low, medium, or high. A similar example is a
traffic light that can be red, yellow, or green.
Summarizing categorical data
In most practical cases where you have categorized data, some values are
repeated. As a practical example, consider the states of the United States.
Each state is in one of four regions: Northeast, South, North Central, or West
(at least according to R). Have a look at the built-in dataset 
state.region
:
> head(state.region)
[1] South West West South West West
Levels: Northeast South North Central West
You can use the handy 
table()
function to get a tabular summary of the
values of a factor:
VB.NET Create PDF from Word Library to convert docx, doc to PDF in
Export all Word text and image content into high quality Professional .NET PDF batch conversion control. Easy to create searchable and scanned PDF files from
search text in pdf using java; how to select text in pdf and copy
VB.NET Create PDF from PowerPoint Library to convert pptx, ppt to
PDF, VB.NET convert PDF to text, VB.NET multiple pages PowerPoint to fillable and editable PDF documents. Easy to create searchable and scanned PDF files from
convert pdf to searchable text; convert pdf to word searchable text
> table(state.region)
state.region
Northeast South North Central West
9 16 12 13
This tells you that the Northeast region has 9 states, the South region has 16
states, and so on.
The 
table()
function works by counting the number of occurrences of each
factor level. You can learn more about 
table()
in the Help page at 
?table
.
The name for this type of data, where rank ordering is important is ordinal
data. In R, there is a special data type for ordinal data. This type is called ordered
factors and is an extension of factors that you’re already familiar with.
To create an ordered factor in R, you have two options:
Use the 
factor()
function with the argument 
ordered=TRUE
.
Use the 
ordered()
function.
Say you want to represent the status of five projects. Each project has a status
of low, medium, or high:
> status <- c(“Lo”, “Hi”, “Med”, “Med”, “Hi”)
Now create an ordered factor with this status data:
> ordered.status <- factor(status, levels=c(“Lo”, “Med”, “Hi”),
ordered=TRUE)
> ordered.status
[1] Lo  Hi  Med Med Hi
Levels: Lo < Med < Hi
You can tell an ordered factor from an ordinary factor by the presence of
directional signs (
<
or 
>
) in the levels.
In R, there is a really big practical advantage to using ordered factors. A
great many R functions recognize and treat ordered factors differently by
printing results in the order that you expect. For example, compare the results
of 
table(status)
with 
table(ordered.status)
:
> table(status)
status
Hi  Lo Med
2   1   2
Notice that the results are ordered alphabetically. However, the results of
performing the same function on the ordered factor yields results that are easier to
interpret because they’re now sorted in the order Lo, Med, Hi:
> table(ordered.status)
ordered.status
Lo Med  Hi
1   2   2
R preserves the ordering information inherent in ordered factors. In Part V, you
see how this becomes an essential tool to gain control over the appearance of bar
charts.
Also, in statistical modeling, R applies the appropriate statistical
transformation (of contrasts) when you have factors or ordered factors in your
model. In Chapter 15, you do some statistical modeling with categorical variables.
Chapter 6
Going on a Date with R
In This Chapter
Working with dates in R
Understanding the different ways of representing dates
Throwing time into the mix
Formatting dates and times for pretty printing
Operating on dates and times
All kinds of real-world data are associated with a specific date or instant in
time. Companies report results each quarter. Stock markets report closing prices
daily. Network analysts measure traffic by the hour (if not by the minute). And of
course, scientists measure air temperature, sometimes by the minute, sometimes
by the day, and have done so for decades.
Dealing with dates accurately can be a complicated task. You have to account
for time-zone differences, leap years, and regional differences in holidays. In
addition, people report data differently in different places. For example, what an
American would write as “May 12, 2010” or “05-12-10” would be written by
someone from the United Kingdom as “12 May 2010” or “12-05-10.” Working with a
time instant on a specific day isn’t any easier. The same time may be written as
9:25 p.m., 21:25, or 21h25 — not to mention time zones!
In this chapter, we look at the different ways of representing dates and times
using R. You take control of the format of dates and time for pretty printing. Then
you do some math with dates — addition and subtraction. Finally, you use some
tricks to extract specific elements, such as the month, from a date.
Working with Dates
R has a range of functions that allow you to work with dates and times. The
easiest way of creating a date is to use the 
as.Date()
function. For example, you
write the opening day of the 2012 London Olympic Games as:
> xd <- as.Date(“2012-07-27”)
> xd
[1] “2012-07-27”
> str(xd)
Date[1:1], format: “2012-07-27”
This works because the default format for dates in 
as.Date()
is 
YYYY-MM-DD
— four digits for year, and two digits for month and day, separated by a
hyphen. In the next section, you get to specify dates in different formats.
To find out what day of the week this is, use 
weekdays()
:
> weekdays(xd)
[1] “Friday”
You can add or subtract numbers from dates to create new dates. For
example, to calculate the date that is seven days in the future, use the following:
> xd + 7
[1] “2012-08-03”
In the same way as with numbers or text, you can put multiple dates into a
vector. To create a vector of seven days starting on July 27, add 
0:6
to the starting
date. (Remember: The colon operator generates integer sequences.)
> xd + 0:6
[1] “2012-07-27” “2012-07-28” “2012-07-29” “2012-07-30”
[5] “2012-07-31” “2012-08-01” “2012-08-02”
Because the 
weekdays()
function takes vector input, it returns the days of the
week for this sequence:
> weekdays(xd + 0:6)
[1] “Friday”    “Saturday”  “Sunday”    “Monday”
[5] “Tuesday”   “Wednesday” “Thursday”
You can use the 
seq()
function to create sequences of dates in a far more
flexible way. As with numeric vectors, you have to specify at least three of the
arguments (
from
to
by
, and 
length.out
). However, in the case of 
Date
objects, the 
by
argument is very flexible. You specify 
by
as a string consisting
of a number followed by 
days
weeks
, or 
months
. Imagine you want to create a
sequence of every second month of 2012, starting at January 1:
Documents you may be interested
Documents you may be interested