ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 06.04.2021
Просмотров: 888
Скачиваний: 1
The R Inferno
Patrick Burns
1
30th April 2011
1
This document resides in the tutorial section of http://www.burns-stat.com. More
elementary material on R may also be found there. S+ is a registered trademark of
TIBCO Software Inc. The author thanks D. Alighieri for useful comments.
Contents
1
6
7
1 Falling into the Floating Point Trap
9
12
17
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
. . . . . . . . . . . . . . . . . . . . . . .
22
24
27
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
35
7 Tripping on Object Orientation
38
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
38
. . . . . . . . . . . . . . . . . . . . . . .
39
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
39
. . . . . . . . . . . . . . . . . . . . . . . . . .
40
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
40
. . . . . . . . . . . . . . . . . . . . . . .
40
. . . . . . . . . . . . . . . . . . . . . . . . . .
41
. . . . . . . . . . . . . . . . . . . . . . . . . . .
42
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
42
1
CONTENTS
CONTENTS
8 Believing It Does as Intended
44
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
. . . . . . . . . . . . . . . . . . . . . .
46
. . . . . . . . . . . . . . . . . . . . .
46
. . . . . . . . . . . . . . . . . . . . . . . . . .
47
. . . . . . . . . . . . . . . . . .
48
. . . . . . . . . . . . . . . . . . . . . . . . .
48
. . . . . . . . . . . . . . . . . . . . . . . . . .
49
. . . . . . . . . . . . . . . . . . . . . . . . .
49
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
50
. . . . . . . . . . . . . . . . .
51
8.1.10 parentheses in the right places
. . . . . . . . . . . . . . .
51
. . . . . . . . . . . . . . . . . . . .
51
8.1.12 excluding missing values
. . . . . . . . . . . . . . . . . . .
52
8.1.13 negative nothing is something
. . . . . . . . . . . . . . . .
52
8.1.14 but zero can be nothing
. . . . . . . . . . . . . . . . . . .
53
8.1.15 something plus nothing is nothing
. . . . . . . . . . . . .
53
. . . . . . . . . . . . . . . . . . . .
54
. . . . . . . . . . . . . . . . . . . . . .
54
. . . . . . . . . . . . . . . . . . . . . . . .
55
8.1.19 first match only (reprise)
. . . . . . . . . . . . . . . . . .
55
8.1.20 partial matching can partially confuse
. . . . . . . . . . .
56
8.1.21 no partial match assignments
. . . . . . . . . . . . . . . .
58
. . . . . . . . . . . . . . . . . . . . . . . .
58
. . . . . . . . . . . . . . . . . . . . . . . . . .
59
. . . . . . . . . . . . . . . . . . . . . .
59
. . . . . . . . . . . . . . . . . . . . . .
60
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
60
. . . . . . . . . . . . . . . . . . . . . . . . . .
61
8.1.28 disappearing attributes
. . . . . . . . . . . . . . . . . . .
62
8.1.29 disappearing attributes (reprise)
. . . . . . . . . . . . . .
62
. . . . . . . . . . . . . . . . . . . . .
62
. . . . . . . . . . . . . . . . . . . . .
63
. . . . . . . . . . . . . . . . . . . . . . . .
63
. . . . . . . . . . . . . . . . . . . .
63
8.1.34 sort.list not for lists
. . . . . . . . . . . . . . . . . . . . .
64
. . . . . . . . . . . . . . . . . . . . . . .
64
8.1.36 source versus attach or load
. . . . . . . . . . . . . . . . .
64
. . . . . . . . . . . . . . . . . . . . .
65
. . . . . . . . . . . . . . . . . . . . . . .
65
8.1.39 string not the name (encore)
. . . . . . . . . . . . . . . .
65
8.1.40 string not the name (yet again)
. . . . . . . . . . . . . . .
65
8.1.41 string not the name (still)
. . . . . . . . . . . . . . . . . .
66
. . . . . . . . . . . . . . . . . . .
66
. . . . . . . . . . . . . . . . . . . . . . . .
67
. . . . . . . . . . . . . . . . . . . . .
67
2
CONTENTS
CONTENTS
. . . . . . . . . . . . . . . . . . . . . . .
68
. . . . . . . . . . . . . . . . . . . . . . .
68
8.1.47 apply function returning a vector
. . . . . . . . . . . . . .
69
. . . . . . . . . . . . . . . . . . . . .
69
8.1.49 arithmetic that mixes matrices and vectors
. . . . . . . .
70
8.1.50 single subscript of a data frame or array
. . . . . . . . . .
71
. . . . . . . . . . . . . . . . . . . .
71
. . . . . . . . . . . . . . . . . . . .
71
. . . . . . . . . . . . . . . . . . . . .
71
. . . . . . . . . . . . . . . . . . . . . . . .
72
. . . . . . . . . . . . . . . . . . . . . . . .
73
8.1.56 disappearing components
. . . . . . . . . . . . . . . . . .
73
. . . . . . . . . . . . . . . . . . . . . . . .
74
. . . . . . . . . . . . . . . . . . . . . . .
74
. . . . . . . . . . . . . . . . . . . . . . .
74
. . . . . . . . . . . . . . . . . . . . . .
75
. . . . . . . . . . . . . . . . . . . . . . . . .
75
. . . . . . . . . . . . . . . . . . . .
75
8.1.63 wrong iterate (yet again)
. . . . . . . . . . . . . . . . . .
76
. . . . . . . . . . . . . . . . . . . . .
76
. . . . . . . . . . . . . . . . . . . . . . . .
76
. . . . . . . . . . . . . . . . . . . . . . . . .
76
. . . . . . . . . . . . . . . . . . . . . . . . .
77
. . . . . . . . . . . . . . . . . . . . . . . . .
78
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
78
. . . . . . . . . . . . . . . . . . . . . . .
78
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
80
. . . . . . . . . . . . . . . .
82
. . . . . . . . . . . . . . . . . . . . . . . . . . .
82
numeric to factor accidentally
. . . . . . . . . . . . . . . .
82
. . . . . . . . . . . . . . . . . . . .
83
. . . . . . . . . . . . . . . . . . . . . . .
83
. . . . . . . . . . . . . . . .
84
. . . . . . . . . . . . . . . . . . .
84
. . . . . . . . . . . . . . . . . . . . . . . .
84
. . . . . . . . . . . . . . . . . . . . . .
85
8.2.10 labels and excluded levels
. . . . . . . . . . . . . . . . . .
85
8.2.11 is missing missing or missing?
. . . . . . . . . . . . . . . .
86
8.2.12 data frame to character
. . . . . . . . . . . . . . . . . . .
87
8.2.13 nonexistent value in subscript
. . . . . . . . . . . . . . . .
88
8.2.14 missing value in subscript
. . . . . . . . . . . . . . . . . .
88
. . . . . . . . . . . . . . . . . . . . .
89
. . . . . . . . . . . . . . . . . . . . . .
90
. . . . . . . . . . . . . . . . . . . . . . .
90
. . . . . . . . . . . . . . . . . . . . .
90
. . . . . . . . . . . . . . . . . . . . . . . . . . .
91
3
CONTENTS
CONTENTS
8.2.20 is.numeric, as.numeric with integers
. . . . . . . . . . . .
91
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
92
. . . . . . . . . . . . . . . . . . . . . . .
92
8.2.23 all.equal returns a surprising value
. . . . . . . . . . . . .
93
8.2.24 all.equal is not identical
. . . . . . . . . . . . . . . . . . .
93
8.2.25 identical really really means identical
. . . . . . . . . . . .
93
. . . . . . . . . . . . . . . . . .
94
. . . . . . . . . . . . . . . . . . . . . .
94
. . . . . . . . . . . . . . . . . . .
94
. . . . . . . . . . . . . . . . . . .
95
. . . . . . . . . . . . . . . . . . . . . . . . . .
95
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
96
. . . . . . . . . . . . . . . . . . . . . .
96
. . . . . . . . . . . . . . . . . . . . .
96
8.2.34 changing names of pieces
. . . . . . . . . . . . . . . . . .
97
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
97
. . . . . . . . . . . . . . . . . . . . . . . .
98
8.2.37 data frames vs matrices
. . . . . . . . . . . . . . . . . . .
98
8.2.38 apply not for data frames
. . . . . . . . . . . . . . . . . .
98
8.2.39 data frames vs matrices (reprise)
. . . . . . . . . . . . . .
98
8.2.40 names of data frames and matrices
. . . . . . . . . . . . .
99
8.2.41 conflicting column names
. . . . . . . . . . . . . . . . . .
99
. . . . . . . . . . . . . . . . . . . . . 100
8.2.43 data frame equal number of rows
. . . . . . . . . . . . . . 100
8.2.44 matrices in data frames
. . . . . . . . . . . . . . . . . . . 100
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
. . . . . . . . . . . . . . . . . . . . . . . . . . . 101
. . . . . . . . . . . . . . . . . . . . . . . . . . 101
the missing, the whole missing and nothing but the missing
102
. . . . . . . . . . . . . . . . . . . . . . . . . . 102
thymine is TRUE, female is FALSE
. . . . . . . . . . . . 102
. . . . . . . . . . . . . . . . . . . . . . 104
. . . . . . . . . . . . . . . . . . . . . . . 104
. . . . . . . . . . . . . . . . . . . 104
. . . . . . . . . . . . . . . . . . . . . . 105
8.3.10 imperfection of writing then reading
. . . . . . . . . . . . 105
8.3.11 non-vectorized function in integrate
. . . . . . . . . . . . 105
8.3.12 non-vectorized function in outer
. . . . . . . . . . . . . . 106
. . . . . . . . . . . . . . . . . . . . . . . . 106
. . . . . . . . . . . . . . . . . . . . . . 107
. . . . . . . . . . . . . . . . . . . . . . . . . . 107
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
. . . . . . . . . . . . . . . . . . . . . . . . 108
. . . . . . . . . . . . . . . . . . . . . . . 109
8.3.19 evaluation of default arguments
. . . . . . . . . . . . . . . 109
. . . . . . . . . . . . . . . . . . . . . 110
4