c# free pdf viewer : Add page numbers to pdf document application control utility azure html winforms visual studio R%20Graphics%20Cookbook35-part717

CHAPTER 15
Getting Your Data into Shape
When it comes to making graphs, half the battle occurs before you call any graphing
commands. Before you pass your data to the graphing functions, it must first be read in
and given the correct structure. The data sets provided with R are ready to use, but when
dealing with real-world data, this usually isn’t the case: you’ll have to clean up and
restructure the data before you can visualize it.
Data sets in R are most often stored in data frames. They’re typically used as two-
dimensional data structures, with each row representing one case and each column
representing one variable. Data frames are essentially lists of vectors and factors, all of
the same length, where each vector or factor represents one column.
Here’s the heightweight data set:
library(gcookbook) # For the data set
heightweight
sex ageYear ageMonth heightIn weightLb
  11.92      143     56.3     85.0
  12.92      155     62.3    105.0
...
  13.92      167     62.0    107.5
  12.58      151     59.3     87.0
It consists of five columns, with each row representing one case: a set of information
about a single person. We can get a clearer idea of how it’s structured by using the str()
function:
str(heightweight)
'data.frame':   236 obs. of  5 variables:
$ sex     : Factor w/ 2 levels "f","m": 1 1 1 1 1 1 1 1 1 1 ...
335
Add page numbers to pdf document - insert pages into PDF file in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Guide C# Users to Insert (Empty) PDF Page or Pages from a Supported File Format
add page numbers to a pdf document; add page numbers to pdf
Add page numbers to pdf document - VB.NET PDF Page Insert Library: insert pages into PDF file in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Easy to Use VB.NET APIs to Add a New Blank Page to PDF Document
add pdf pages to word; adding page numbers pdf file
$ ageYear : num  11.9 12.9 12.8 13.4 15.9 ...
$ ageMonth: int  143 155 153 161 191 171 185 142 160 140 ...
$ heightIn: num  56.3 62.3 63.3 59 62.5 62.5 59 56.5 62 53.8 ...
$ weightLb: num  85 105 108 92 112 ...
The first column, sex, is a factor with two levels, "f" and "m", and the other four columns
are vectors of numbers (one of them, ageMonth, is specifically a vector of integers, but
for the purposes here, it behaves the same as any other numeric vector).
Factors and character vectors behave similarly in ggplot2—the main difference is that
with character vectors, items will be displayed in lexicographical order, but with factors,
items will be displayed in the same order as the factor levels, which you can control.
15.1. Creating a Data Frame
Problem
You want to create a data frame from vectors.
Solution
You can put vectors together in a data frame with data.frame():
# Two starting vectors
<- c("A""B""C")
<- 1:3
dat <- data.frame(g, x)
dat
g x
A 1
B 2
C 3
Discussion
A data frame is essentially a list of vectors and factors. Each vector or factor can be
thought of as a column in the data frame.
If your vectors are in a list, you can convert the list to a data frame with the as.data
.frame() function:
lst <- list(group = g, value = x)    # A list of vectors
dat <- as.data.frame(lst)
336 | Chapter 15: Getting Your Data into Shape
C# Create PDF Library SDK to convert PDF from other file formats
offer them the ability to count the page numbers of generated document in C#.NET using this PDF document creating toolkit, if you need to add some text
adding page numbers pdf; add page numbers to pdf in preview
C# Word - Word Create or Build in C#.NET
also offer them the ability to count the page numbers of generated using this Word document adding control, you can add some additional Create Word From PDF.
adding page numbers in pdf file; adding page numbers to pdf files
15.2. Getting Information About a Data Structure
Problem
You want to find out information about an object or data structure.
Solution
Use the str() function:
str(ToothGrowth)
'data.frame':   60 obs. of  3 variables:
$ len : num  4.2 11.5 7.3 5.8 6.4 10 11.2 11.2 5.2 7 ...
$ supp: Factor w/ 2 levels "OJ","VC": 2 2 2 2 2 2 2 2 2 2 ...
$ dose: num  0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 ...
This tells us that ToothGrowth is a data frame with three columns, lensupp, and dose.
len and dose contain numeric values, while supp is a factor with two levels.
Discussion
The str() function is very useful for finding out more about data structures. One com‐
mon source of problems is a data frame where one of the columns is a character vector
instead of a factor, or vice versa. This can cause puzzling issues with analyses or graphs.
When you print out a data frame the normal way, by just typing the name at the prompt
and pressing Enter, factor and character columns appear exactly the same. The difference
will be revealed only when you run str() on the data frame, or print out the column
by itself:
tg <- ToothGrowth
tg$supp <- as.character(tg$supp)
str(tg)
'data.frame':   60 obs. of  3 variables:
$ len : num  4.2 11.5 7.3 5.8 6.4 10 11.2 11.2 5.2 7 ...
$ supp: chr  "VC" "VC" "VC" "VC" ...
$ dose: num  0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 ...
# Print out the columns by themselves
# From old data frame (factor)
ToothGrowth$supp
[1] VC VC VC VC VC VC VC VC VC VC VC VC VC VC VC VC VC VC VC VC VC VC VC VC VC
[26] VC VC VC VC VC OJ OJ OJ OJ OJ OJ OJ OJ OJ OJ OJ OJ OJ OJ OJ OJ OJ OJ OJ OJ
[51] OJ OJ OJ OJ OJ OJ OJ OJ OJ OJ
15.2. Getting Information About a Data Structure | 337
C# PowerPoint - PowerPoint Creating in C#.NET
offer them the ability to count the page numbers of generated in C#.NET using this PowerPoint document creating toolkit, if you need to add some text
add pages to pdf file; add page to pdf in preview
C# Word - Word Creating in C#.NET
offer them the ability to count the page numbers of generated document in C#.NET using this Word document creating toolkit, if you need to add some text
add a page to a pdf in reader; add page to existing pdf file
Levels: OJ VC
# From new data frame (character)
tg$supp
[1] "VC" "VC" "VC" "VC" "VC" "VC" "VC" "VC" "VC" "VC" "VC" "VC" "VC" "VC" "VC"
[16] "VC" "VC" "VC" "VC" "VC" "VC" "VC" "VC" "VC" "VC" "VC" "VC" "VC" "VC" "VC"
[31] "OJ" "OJ" "OJ" "OJ" "OJ" "OJ" "OJ" "OJ" "OJ" "OJ" "OJ" "OJ" "OJ" "OJ" "OJ"
[46] "OJ" "OJ" "OJ" "OJ" "OJ" "OJ" "OJ" "OJ" "OJ" "OJ" "OJ" "OJ" "OJ" "OJ" "OJ"
15.3. Adding a Column to a Data Frame
Problem
You want to add a column to a data frame.
Solution
Just assign some value to the new column.
If you assign a single value to the new column, the entire column will be filled with that
value. This adds a column named newcol, filled with NA:
data$newcol <- NA
You can also assign a vector to the new column:
data$newcol <- vec
If the length of the vector is less than the number of rows in the data frame, then the
vector is repeated to fill all the rows.
Discussion
Each “column” of a data frame is a vector or factor. R handles them slightly differently
from standalone vectors, because all the columns in a data frame have the same length.
15.4. Deleting a Column from a Data Frame
Problem
You want to delete a column from a data frame.
Solution
Assign NULL to that column:
data$badcol <- NULL
338 | Chapter 15: Getting Your Data into Shape
VB.NET TIFF: VB.NET Sample Codes to Sort TIFF File with .NET
manipulating multi-page TIFF (Tagged Image File), PDF, Microsoft Office If you want to add barcode into a TIFF a multi-page TIFF file with page numbers using VB
adding pages to a pdf; add page to pdf
C# Excel: Create and Draw Linear and 2D Barcodes on Excel Page
can also load document like PDF, TIFF, Word get the first page BasePage page = doc.GetPage REImage barcodeImage = linearBarcode.ToImage(); // add barcode image
add page number to pdf online; adding page numbers to a pdf in reader
Discussion
You can also use the subset() function and put a - (minus sign) in front of the column(s)
to drop:
# Return data without badcol
data <- subset(data, select = -badcol)
# Exclude badcol and othercol
data <- subset(data, select = c(-badcol, -othercol))
See Also
Recipe 15.7 for more on getting a subset of a data frame.
15.5. Renaming Columns in a Data Frame
Problem
You want to rename the columns in a data frame.
Solution
Use the names(dat) <- function:
names(dat) <- c("name1", "name2""name3")
Discussion
If you want to rename the columns by name:
library(gcookbook) # For the data set
names(anthoming)   # Print the names of the columns
"angle" "expt"  "ctrl"
names(anthoming)[names(anthoming) == "ctrl"] <- c("Control")
names(anthoming)[names(anthoming) == "expt"] <- c("Experimental")
names(anthoming)
"angle"        "Experimental" "Control"
They can also be renamed by numeric position:
names(anthoming)[1<- "Angle"
names(anthoming)
"Angle"        "Experimental" "Control"
15.5. Renaming Columns in a Data Frame | 339
C# Excel - Excel Creating in C#.NET
also offer them the ability to count the page numbers of generated in C#.NET using this Excel document creating toolkit, if you need to add some text
add page numbers to pdf document in preview; add pages to an existing pdf
VB.NET Image: Guide to Convert Images to Stream with DocImage SDK
Follow this guiding page to learn how to easily convert a single image or numbers of it an image processing component which can enable developers to add a wide
add a page to a pdf document; add page numbers pdf
15.6. Reordering Columns in a Data Frame
Problem
You want to change the order of columns in a data frame.
Solution
To reorder columns by their numeric position:
dat <- dat[c(1,3,2)]
To reorder by column name:
dat <- dat[c("col1", "col3""col2")]
Discussion
The previous examples use list-style indexing. A data frame is essentially a list of vectors,
and indexing into it as a list will return another data frame. You can get the same effect
with matrix-style indexing:
library(gcookbook) # For the data set
anthoming
angle expt ctrl
-20    1    0
-10    7    3
   2    3
10    0    3
20    0    1
anthoming[c(1,3,2)]     # List-style indexing
angle ctrl expt
-20    0    1
-10    3    7
   3    2
10    3    0
20    1    0
# Putting nothing before the comma means to select all rows
anthoming[, c(1,3,2)]   # Matrix-style indexing
angle ctrl expt
-20    0    1
-10    3    7
   3    2
10    3    0
20    1    0
340 | Chapter 15: Getting Your Data into Shape
C# Word: How to Use C# Code to Print Word Document for .NET
are also available within C# Word Printer Add-on , like pages at one paper, setting the page copy numbers to be C# Class Code to Print Certain Page(s) of Word.
add page break to pdf; add page numbers to pdf files
C#: Use XImage.OCR to Recognize MICR E-13B, OCR-A, OCR-B Fonts
may need to scan and get check characters like numbers and codes. page.RecSettings. LanguagesEnabled.Add(Language.Other); page.RecSettings.OtherLanguage
add page to pdf without acrobat; adding page numbers to a pdf document
In this case, both methods return the same result, a data frame. However, when retrieving
a single column, list-style indexing will return a data frame, while matrix-style indexing
will return a vector, unless you use drop=FALSE:
anthoming[3    # List-style indexing
ctrl
0
3
3
3
1
anthoming[, 3  # Matrix-style indexing
0 3 3 3 1
anthoming[, 3, drop=FALSE  # Matrix-style indexing with drop=FALSE
ctrl
0
3
3
3
1
15.7. Getting a Subset of a Data Frame
Problem
You want to get a subset of a data frame.
Solution
Use the subset() function. It can be used to pull out rows that satisfy a set of conditions
and to select particular columns.
We’ll use the climate data set for the examples here:
library(gcookbook) # For the data set
climate
Source Year Anomaly1y Anomaly5y Anomaly10y Unc10y
Berkeley 1800        NA        NA     -0.435  0.505
Berkeley 1801        NA        NA     -0.453  0.493
Berkeley 1802        NA        NA     -0.460  0.486
...
CRUTEM3 2009    0.7343        NA         NA     NA
CRUTEM3 2010    0.8023        NA         NA     NA
CRUTEM3 2011    0.6193        NA         NA     NA
15.7. Getting a Subset of a Data Frame | 341
The following will pull out only rows where Source is "Berkeley" and only the columns
named Year and Anomaly10y:
subset(climate, Source == "Berkeley", select = c(Year, Anomaly10y))
Year Anomaly10y
1800     -0.435
1801     -0.453
1802     -0.460
...
2002      0.856
2003      0.869
2004      0.884
Discussion
It is possible to use multiple selection criteria, by using the | (OR) and & (AND) oper‐
ators. For example, this will pull out only those rows where source is "Berkeley", be‐
tween the years 1900 and 2000:
subset(climate, Source == "Berkeley"  &  Year >= 1900  &  Year <= 2000,
select = c(Year, Anomaly10y))
Year Anomaly10y
1900     -0.171
1901     -0.162
1902     -0.177
...
1998      0.680
1999      0.734
2000      0.748
You can also get a subset of data by indexing into the data frame with square brackets,
although this approach is somewhat less elegant. The following code has the same effect
as the code we just saw. The part before the comma picks out the rows, and the part after
the comma picks out the columns:
climate[climate$Source=="Berkeley" & climate$Year >= 1900 & climate$Year <= 2000,
c("Year""Anomaly10y")]
If you grab just a single column this way, it will be returned as a vector instead of a data
frame. To prevent this, use drop=FALSE, as in:
climate[climate$Source=="Berkeley" & climate$Year >= 1900 & climate$Year <= 2000,
c("Year""Anomaly10y"), drop=FALSE]
Finally, it’s also possible to pick out rows and columns by their numeric position. This
gets the second and fifth columns of the first 100 rows:
climate[1:100, c(25)]
342 | Chapter 15: Getting Your Data into Shape
I generally recommend indexing using names rather than numbers when possible. It
makes the code easier to understand when you’re collaborating with others or when you
come back to it months or years after writing it, and it makes the code less likely to break
when there are changes to the data, such as when columns are added or removed.
15.8. Changing the Order of Factor Levels
Problem
You want to change the order of levels in a factor.
Solution
The level order can be specified explicitly by passing the factor to factor() and speci‐
fying levels. In this example, we’ll create a factor that initially has the wrong ordering:
# By default, levels are ordered alphabetically
sizes <- factor(c("small""large""large""small""medium"))
sizes
small  large  large  small  medium
Levels: large medium small
# Change the order of levels
sizes <- factor(sizes, levels = c("small", "medium", "large"))
sizes
small  large  large  small  medium
Levels: small medium large
The order can also be specified with levels when the factor is first created.
Discussion
There are two kinds of factors in R: ordered factors and regular factors. In both types,
the levels are arranged in some order; the difference is that the order is meaningful for
an ordered factor, but it is arbitrary for a regular factor—it simply reflects how the data
is stored. For graphing data, the distinction between ordered and regular factors is gen‐
erally unimportant, and they can be treated the same.
The order of factor levels affects graphical output. When a factor variable is mapped to
an aesthetic property in ggplot2, the aesthetic adopts the ordering of the factor levels.
If a factor is mapped to the x-axis, the ticks on the axis will be in the order of the factor
levels, and if a factor is mapped to color, the items in the legend will be in the order of
the factor levels.
To reverse the level order, you can use rev(levels()):
15.8. Changing the Order of Factor Levels | 343
factor(sizes, levels = rev(levels(sizes)))
small  large  large  small  medium
Levels: small medium large
See Also
To reorder a factor based on the value of another variable, see Recipe 15.9.
Reordering factor levels is useful for controlling the order of axes and legends. See Rec‐
ipes 8.4 and 10.3 for more information.
15.9. Changing the Order of Factor Levels Based
on Data Values
Problem
You want to change the order of levels in a factor based on values in the data.
Solution
Use reorder() with the factor that has levels to reorder, the values to base the reordering
on, and a function that aggregates the values:
# Make a copy since we'll modify it
iss <- InsectSprays
iss$spray
[1] A A A A A A A A A A A A B B B B B B B B B B B B C C C C C C C C C C C C D D
[39] D D D D D D D D D D E E E E E E E E E E E E F F F F F F F F F F F F
Levels: A B C D E F
iss$spray <- reorder(iss$spray, iss$count, FUN=mean)
iss$spray
[1] A A A A A A A A A A A A B B B B B B B B B B B B C C C C C C C C C C C C D D
[39] D D D D D D D D D D E E E E E E E E E E E E F F F F F F F F F F F F
attr(,"scores")
        B         C         D         E         F
14.500000 15.333333  2.083333  4.916667  3.500000 16.666667
Levels: C E D A B F
Notice that the original levels were ABCDEF, while the reordered levels are CEDABF. The
new order is determined by splitting iss$count into pieces according to the values in
iss$spray, and then taking the mean of each group.
344 | Chapter 15: Getting Your Data into Shape
Documents you may be interested
Documents you may be interested