r_cookbook.pdf

(4226 KB) Pobierz
R Cookbook
by Paul Teetor
Copyright © 2011 Paul Teetor. All rights reserved.
Printed in the United States of America.
Published by O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472.
O’Reilly books may be purchased for educational, business, or sales promotional use. Online editions
are also available for most titles ( http://my.safaribooksonline.com ). For more information, contact our
corporate/institutional sales department: (800) 998-9938 or corporate@oreilly.com .
Editor: Mike Loukides
Production Editor: Adam Zaremba
Copyeditor: Matt Darnell
Proofreader: Jennifer Knight
Indexer: Jay Marchand
Cover Designer: Karen Montgomery
Interior Designer: David Futato
Illustrator: Robert Romano
Printing History:
March 2011:
First Edition.
Nutshell Handbook, the Nutshell Handbook logo, and the O’Reilly logo are registered trademarks of
O’Reilly Media, Inc. R Cookbook , the image of a harpy eagle, and related trade dress are trademarks of
O’Reilly Media, Inc.
Many of the designations used by manufacturers and sellers to distinguish their products are claimed as
trademarks. Where those designations appear in this book, and O’Reilly Media, Inc. was aware of a
trademark claim, the designations have been printed in caps or initial caps.
While every precaution has been taken in the preparation of this book, the publisher and authors assume
no responsibility for errors or omissions, or for damages resulting from the use of the information con-
tained herein.
ISBN: 978-0-596-80915-7
[LSI]
1299102737
Table of Contents
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii
1.
Getting Started and Getting Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1 Downloading and Installing R
2
1.2 Starting R
4
1.3 Entering Commands
7
1.4 Exiting from R
8
1.5 Interrupting R
9
1.6 Viewing the Supplied Documentation
10
1.7 Getting Help on a Function
11
1.8 Searching the Supplied Documentation
13
1.9 Getting Help on a Package
14
1.10 Searching the Web for Help
16
1.11 Finding Relevant Functions and Packages
18
1.12 Searching the Mailing Lists
19
1.13 Submitting Questions to the Mailing Lists
20
2.
Some Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.1 Printing Something
23
2.2 Setting Variables
25
2.3 Listing Variables
26
2.4 Deleting Variables
27
2.5 Creating a Vector
28
2.6 Computing Basic Statistics
30
2.7 Creating Sequences
32
2.8 Comparing Vectors
34
2.9 Selecting Vector Elements
35
2.10 Performing Vector Arithmetic
38
2.11 Getting Operator Precedence Right
40
2.12 Defining a Function
41
2.13 Typing Less and Accomplishing More
43
v
1070477733.003.png 1070477733.004.png
2.14 Avoiding Some Common Mistakes
46
3.
Navigating the Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.1 Getting and Setting the Working Directory
51
3.2 Saving Your Workspace
52
3.3 Viewing Your Command History
53
3.4 Saving the Result of the Previous Command
53
3.5 Displaying the Search Path
54
3.6 Accessing the Functions in a Package
55
3.7 Accessing Built-in Datasets
57
3.8 Viewing the List of Installed Packages
58
3.9 Installing Packages from CRAN
59
3.10 Setting a Default CRAN Mirror
61
3.11 Suppressing the Startup Message
62
3.12 Running a Script
62
3.13 Running a Batch Script
63
3.14 Getting and Setting Environment Variables
66
3.15 Locating the R Home Directory
67
3.16 Customizing R
68
4.
Input and Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
4.1 Entering Data from the Keyboard
72
4.2 Printing Fewer Digits (or More Digits)
73
4.3 Redirecting Output to a File
74
4.4 Listing Files
75
4.5 Dealing with “Cannot Open File” in Windows
76
4.6 Reading Fixed-Width Records
77
4.7 Reading Tabular Data Files
78
4.8 Reading from CSV Files
80
4.9 Writing to CSV Files
82
4.10 Reading Tabular or CSV Data from the Web
83
4.11 Reading Data from HTML Tables
84
4.12 Reading Files with a Complex Structure
86
4.13 Reading from MySQL Databases
89
4.14 Saving and Transporting Objects
92
5.
Data Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
5.1 Appending Data to a Vector
101
5.2 Inserting Data into a Vector
103
5.3 Understanding the Recycling Rule
103
5.4 Creating a Factor (Categorical Variable)
105
5.5 Combining Multiple Vectors into One Vector and a Factor
107
5.6 Creating a List
108
vi
|
Table of Contents
1070477733.005.png
5.7 Selecting List Elements by Position
109
5.8 Selecting List Elements by Name
111
5.9 Building a Name/Value Association List
112
5.10 Removing an Element from a List
114
5.11 Flatten a List into a Vector
115
5.12 Removing NULL Elements from a List
116
5.13 Removing List Elements Using a Condition
117
5.14 Initializing a Matrix
118
5.15 Performing Matrix Operations
119
5.16 Giving Descriptive Names to the Rows and Columns of a Matrix
120
5.17 Selecting One Row or Column from a Matrix
121
5.18 Initializing a Data Frame from Column Data
122
5.19 Initializing a Data Frame from Row Data
123
5.20 Appending Rows to a Data Frame
125
5.21 Preallocating a Data Frame
126
5.22 Selecting Data Frame Columns by Position
127
5.23 Selecting Data Frame Columns by Name
131
5.24 Selecting Rows and Columns More Easily
132
5.25 Changing the Names of Data Frame Columns
133
5.26 Editing a Data Frame
135
5.27 Removing NAs from a Data Frame
136
5.28 Excluding Columns by Name
137
5.29 Combining Two Data Frames
138
5.30 Merging Data Frames by Common Column
140
5.31 Accessing Data Frame Contents More Easily
141
5.32 Converting One Atomic Value into Another
143
5.33 Converting One Structured Data Type into Another
144
6.
Data Transformations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
6.1 Splitting a Vector into Groups
148
6.2 Applying a Function to Each List Element
149
6.3 Applying a Function to Every Row
151
6.4 Applying a Function to Every Column
152
6.5 Applying a Function to Groups of Data
154
6.6 Applying a Function to Groups of Rows
156
6.7 Applying a Function to Parallel Vectors or Lists
158
7.
Strings and Dates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
7.1 Getting the Length of a String
163
7.2 Concatenating Strings
163
7.3 Extracting Substrings
164
7.4 Splitting a String According to a Delimiter
165
7.5 Replacing Substrings
166
Table of Contents
|
vii
1070477733.001.png
Zgłoś jeśli naruszono regulamin