2019

Indexing data in R

Indexing data

  • Essential to reach the desired values of an object
  • Performed via operators: [], [,], [[]], $, @
  • Each data structure is indexed differently
  • One of the most essential skills when using R
  • Indexing with negative number removed values from an object

Indexing vectors

  • Index describes the positions of vector elements
  • Indexing with square brackets: [m]
x <- 1:10
x[1]
## [1] 1
x[1:3]
## [1] 1 2 3
x[c(1, 4)]
## [1] 1 4
x[length(x)]
## [1] 10

Indexing matrics

  • Two dimensions require two indices: [m,n]
X <- matrix(data = 1:9, nrow = 3)
X
##      [,1] [,2] [,3]
## [1,]    1    4    7
## [2,]    2    5    8
## [3,]    3    6    9
X[1, 1]
## [1] 1
X[1:2, 2]
## [1] 4 5
X[,1]
## [1] 1 2 3

Indexing data frames and lists

  • Two possibilities: via element position [[m]] or element name $
D <- data.frame(x = 1:2, y = 3:4)
D[[1]]
## [1] 1 2
D$y
## [1] 3 4
D$y[2]
## [1] 4

Indexing S4 objects

  • With the @-Operator and component name
  • Or with dedicated methods for an object
  • Important: data structure must be known (str())
data(volcano)
V <- raster::raster(x = volcano)

V@data@values
##    [1] 100 100 101 101 101 101 101 100 100 100 101 101 102 102 102 102 103
##   [18] 104 103 102 101 101 102 103 104 104 105 107 107 107 108 108 110 110
##   [35] 110 110 110 110 110 110 108 108 108 107 107 108 108 108 108 108 107
##   [52] 107 107 107 106 106 105 105 104 104 103 101 101 102 102 102 102 102
##   [69] 101 101 101 102 102 103 103 103 103 104 105 104 103 102 102 103 105
##   [86] 106 106 107 109 110 110 110 110 111 112 113 114 116 115 114 112 110
##  [103] 110 110 109 108 109 109 109 109 108 108 108 108 107 107 106 106 105
##  [120] 105 104 104 102 102 103 103 103 103 103 102 102 102 103 103 104 104
##  [137] 104 104 105 106 105 104 104 105 106 107 108 110 111 113 114 115 114
##  [154] 115 116 118 119 119 121 121 120 118 116 114 112 111 110 110 110 110
##  [171] 109 109 109 109 108 108 107 107 106 106 105 105 104 103 103 104 104
##  [188] 104 104 104 103 103 103 103 104 104 104 105 105 106 107 106 106 106
##  [205] 107 108 110 111 114 117 118 117 119 120 121 122 124 125 126 127 127
##  [222] 126 124 122 120 117 116 113 111 110 110 110 109 109 109 109 108 108
##  [239] 107 107 106 106 105 105 104 104 105 105 105 105 105 104 104 103 104
##  [256] 104 105 105 105 106 107 108 108 108 109 110 112 114 115 118 121 122
##  [273] 121 123 128 131 129 130 131 131 132 132 131 130 128 126 122 119 115
##  [290] 114 112 110 110 110 110 110 109 109 108 107 107 107 106 106 105 105
##  [307] 105 105 106 106 106 106 105 105 104 104 105 105 106 106 107 109 110
##  [324] 110 112 113 115 116 118 119 121 124 126 126 129 134 137 137 136 136
##  [341] 135 136 136 136 135 133 129 126 122 118 116 115 113 111 110 110 110
##  [358] 110 109 108 108 108 107 107 106 106 105 106 106 107 107 107 107 106
##  [375] 106 105 105 106 106 107 108 109 111 113 114 116 118 120 121 122 123
##  [392] 125 127 129 130 135 140 142 142 142 141 140 140 140 140 139 137 134
##  [409] 129 125 121 118 116 114 112 110 110 110 111 110 109 109 108 108 107
##  [426] 107 106 106 107 107 108 108 108 108 107 107 106 106 107 108 108 110
##  [443] 113 115 117 118 120 122 124 125 127 128 129 131 134 135 141 146 147
##  [460] 146 146 145 144 144 144 143 142 141 139 135 130 126 122 118 116 114
##  [477] 112 112 113 112 110 110 109 109 108 108 107 106 107 108 108 109 109
##  [494] 109 109 108 108 107 108 108 110 111 113 116 118 120 123 125 127 129
##  [511] 130 132 134 135 137 139 142 146 152 152 151 151 150 149 148 148 146
##  [528] 145 143 142 139 135 131 127 122 119 117 115 115 115 114 112 110 110
##  [545] 109 109 108 107 107 108 109 109 110 110 110 110 109 109 108 110 110
##  [562] 113 116 118 120 122 125 127 129 133 136 138 140 141 142 148 150 151
##  [579] 156 158 159 158 157 158 158 154 151 149 148 146 144 141 137 134 130
##  [596] 125 122 120 118 117 117 115 113 111 110 110 109 108 107 107 109 110
##  [613] 110 111 111 111 111 110 110 110 112 114 118 121 123 125 127 129 133
##  [630] 137 141 143 145 146 148 150 154 156 159 161 162 163 164 163 164 164
##  [647] 160 157 154 151 149 146 144 140 137 133 129 126 124 121 119 118 116
##  [664] 114 112 111 110 109 108 107 106 110 110 111 113 112 111 113 112 112
##  [681] 114 116 119 121 124 127 129 133 138 143 146 149 149 151 153 154 157
##  [698] 159 160 163 165 166 167 168 168 168 168 166 162 159 157 154 152 149
##  [715] 144 140 136 133 131 128 125 122 119 117 115 113 111 110 109 108 107
##  [732] 106 110 111 113 115 114 113 114 114 115 117 119 121 124 126 129 133
##  [749] 140 145 150 154 155 155 157 159 161 162 164 165 167 168 169 170 172
##  [766] 174 172 172 171 169 166 163 161 158 153 148 143 140 137 134 131 128
##  [783] 125 120 118 116 114 112 110 109 108 107 105 111 113 115 117 116 115
##  [800] 116 117 117 119 121 124 126 128 132 137 143 151 156 161 161 162 163
##  [817] 165 166 167 168 170 171 173 175 177 179 178 177 176 176 174 171 169
##  [834] 165 161 156 152 148 144 140 138 135 131 127 123 119 117 115 113 111
##  [851] 110 108 106 105 114 115 117 117 117 118 119 119 120 121 124 126 128
##  [868] 131 137 143 150 156 160 163 165 168 170 171 172 173 174 175 177 179
##  [885] 180 182 183 183 183 183 180 178 177 172 168 164 160 156 152 148 144
##  [902] 141 138 134 130 126 121 117 114 112 110 110 108 106 104 116 118 118
##  [919] 118 120 121 121 122 122 123 125 128 130 134 141 147 152 156 160 165
##  [936] 168 170 174 176 179 180 181 181 182 182 183 184 186 187 187 184 184
##  [953] 181 180 176 172 168 165 161 157 153 149 145 142 138 133 129 125 120
##  [970] 115 111 110 110 108 106 104 118 120 120 121 122 123 124 124 125 126
##  [987] 127 129 132 135 142 149 153 157 161 166 170 174 178 180 182 183 184
## [1004] 184 185 186 186 187 189 189 189 189 189 186 182 179 175 171 168 165
## [1021] 162 157 152 149 145 141 137 131 125 120 116 111 110 110 108 106 104
## [1038] 120 121 122 123 124 125 126 127 127 128 130 132 134 137 142 151 155
## [1055] 158 162 169 172 176 181 183 184 186 187 188 189 189 189 189 190 190
## [1072] 191 190 190 188 186 183 180 175 171 168 165 161 157 152 149 145 141
## [1089] 134 127 121 116 112 110 110 108 106 104 120 122 125 126 126 127 128
## [1106] 129 130 130 132 134 136 139 145 152 157 160 167 172 175 178 181 185
## [1123] 186 188 190 191 192 193 193 192 192 191 192 191 191 190 190 187 184
## [1140] 181 177 172 169 165 161 156 152 147 143 139 131 123 119 115 111 110
## [1157] 108 106 105 121 124 126 128 129 129 130 131 132 133 135 137 139 143
## [1174] 150 154 159 164 170 173 176 179 184 186 189 190 191 192 193 194 195
## [1191] 194 193 192 191 191 191 191 190 190 188 184 181 177 173 169 165 160
## [1208] 155 149 145 142 136 129 123 118 114 110 108 108 107 122 125 127 130
## [1225] 130 131 133 134 135 136 137 140 143 147 154 158 162 166 171 174 177
## [1242] 181 186 189 190 190 191 192 191 191 190 189 188 189 190 190 191 190
## [1259] 190 190 189 186 184 181 177 173 169 164 158 152 148 144 140 134 125
## [1276] 118 115 111 110 108 107 122 125 128 130 132 133 135 136 137 139 140
## [1293] 143 147 152 157 161 164 168 172 175 179 182 186 190 190 190 190 189
## [1310] 187 184 184 183 182 182 183 183 183 184 185 186 187 186 185 184 181
## [1327] 177 173 169 163 157 149 145 141 136 130 119 116 112 110 108 106 123
## [1344] 126 129 131 133 135 137 138 139 141 143 147 150 156 161 164 167 170
## [1361] 173 177 181 184 187 188 190 189 187 185 183 179 176 174 174 174 174
## [1378] 174 176 177 179 180 182 183 182 181 181 180 176 171 166 160 152 147
## [1395] 142 138 133 126 121 115 110 106 105 124 127 130 132 135 137 138 140
## [1412] 142 144 147 149 154 157 161 165 168 171 175 178 181 184 186 187 187
## [1429] 184 184 181 179 175 171 169 168 168 168 169 170 172 174 177 178 179
## [1446] 180 181 181 180 179 174 167 161 155 148 144 139 134 128 121 115 110
## [1463] 106 105 123 128 131 133 136 138 140 142 144 146 149 151 154 157 160
## [1480] 164 168 172 175 178 181 183 184 184 185 183 180 177 174 170 167 165
## [1497] 164 164 164 165 166 168 171 175 176 178 180 181 180 180 179 177 170
## [1514] 163 157 150 144 139 134 128 121 115 110 108 107 123 127 131 134 136
## [1531] 138 140 142 144 147 149 151 154 157 160 164 168 171 174 178 180 181
## [1548] 181 182 183 181 178 173 169 166 163 161 161 160 160 161 163 165 168
## [1565] 173 176 178 179 180 181 180 180 175 173 166 159 152 145 139 134 127
## [1582] 121 115 110 109 108 120 124 128 131 134 137 139 142 144 146 149 151
## [1599] 153 156 160 163 167 171 174 178 180 180 180 180 180 180 175 171 167
## [1616] 162 160 158 157 157 157 158 159 162 166 170 175 177 178 180 181 181
## [1633] 180 178 175 169 160 154 148 140 134 128 121 115 110 110 109 118 121
## [1650] 125 129 132 134 137 140 142 145 147 149 151 155 159 163 166 169 173
## [1667] 177 179 180 180 180 180 179 174 169 166 161 158 156 154 153 153 154
## [1684] 156 159 163 169 173 175 178 180 181 180 180 179 175 170 160 154 149
## [1701] 142 135 128 122 116 111 110 110 117 120 121 125 129 132 135 138 140
## [1718] 143 145 147 149 153 157 160 163 166 171 174 177 179 180 180 180 179
## [1735] 172 168 164 160 157 154 151 149 150 150 154 158 164 169 174 178 180
## [1752] 180 180 180 178 177 175 170 161 153 148 142 135 129 123 116 113 112
## [1769] 110 115 118 120 122 126 130 133 136 138 141 143 145 148 151 154 157
## [1786] 160 163 168 171 174 177 179 179 179 176 171 167 164 160 156 153 149
## [1803] 148 149 151 155 158 163 170 173 177 179 180 180 180 178 175 173 171
## [1820] 162 154 147 141 136 130 124 117 115 112 110 114 116 118 120 122 127
## [1837] 131 133 136 138 141 143 146 148 151 154 157 160 164 168 171 174 178
## [1854] 178 179 177 173 169 165 161 157 154 151 149 150 152 155 159 166 171
## [1871] 175 177 179 180 180 179 176 174 171 168 159 151 146 141 135 129 124
## [1888] 119 116 113 110 115 114 116 118 120 122 127 129 132 136 139 141 143
## [1905] 146 148 151 153 156 160 164 167 172 174 176 177 176 173 170 166 162
## [1922] 159 157 154 153 154 155 158 161 169 172 174 176 178 178 178 178 175
## [1939] 172 169 162 156 149 144 140 134 128 123 118 115 112 110 113 113 114
## [1956] 116 118 120 122 125 129 133 136 138 141 143 146 149 150 153 156 160
## [1973] 165 170 173 176 176 176 173 172 169 165 163 160 158 157 158 159 161
## [1990] 166 170 170 173 175 176 178 176 173 171 168 164 158 153 146 140 137
## [2007] 132 127 121 117 113 111 110 111 112 113 114 116 118 120 122 126 130
## [2024] 133 136 139 142 145 147 148 151 155 158 163 168 173 176 177 177 176
## [2041] 174 171 169 166 164 161 161 162 164 165 167 170 170 171 173 173 173
## [2058] 170 168 165 163 160 155 149 143 138 134 130 125 119 116 112 110 109
## [2075] 110 112 113 113 114 116 118 120 123 127 131 134 137 141 143 145 148
## [2092] 150 154 157 161 166 171 176 178 178 178 176 174 172 170 167 167 167
## [2109] 166 168 170 169 168 167 168 168 168 168 167 165 163 160 156 152 146
## [2126] 140 136 131 128 122 118 114 110 110 109 109 110 111 112 114 116 118
## [2143] 119 120 124 128 131 136 140 142 145 147 150 153 157 160 165 170 174
## [2160] 178 179 179 178 178 176 174 171 170 170 170 168 167 166 164 163 161
## [2177] 162 163 163 163 161 160 157 153 148 142 136 130 127 124 120 117 113
## [2194] 110 110 109 108 109 111 112 114 116 117 118 120 121 125 128 132 138
## [2211] 142 144 147 149 153 156 160 164 170 174 178 180 180 179 179 178 176
## [2228] 172 170 170 170 168 166 164 162 160 157 156 157 158 158 156 153 151
## [2245] 149 144 139 130 127 124 121 118 115 112 110 110 109 108 109 111 113
## [2262] 114 116 117 118 119 120 122 126 130 135 139 143 147 149 152 156 160
## [2279] 164 169 173 177 180 180 180 180 179 178 174 170 170 168 167 165 163
## [2296] 161 157 154 153 152 152 152 149 148 147 144 140 134 128 125 122 119
## [2313] 117 114 110 110 109 109 107 108 111 112 114 115 116 117 119 120 121
## [2330] 124 128 133 137 141 145 149 152 156 160 164 168 172 176 179 180 180
## [2347] 180 179 178 174 170 168 166 165 163 161 158 154 150 149 148 146 145
## [2364] 143 143 143 140 136 130 126 123 120 118 115 112 110 110 109 109 107
## [2381] 108 110 112 113 113 115 116 118 120 122 125 128 132 136 140 145 148
## [2398] 150 155 160 164 167 170 174 177 179 179 178 176 176 173 169 166 164
## [2415] 163 161 159 155 152 148 145 143 141 140 139 139 138 136 132 128 124
## [2432] 121 118 116 114 111 110 110 109 108 107 108 109 111 113 114 116 117
## [2449] 119 120 122 125 128 132 137 141 144 146 149 152 157 162 166 168 171
## [2466] 173 175 175 173 172 172 171 168 165 162 160 158 156 153 149 145 142
## [2483] 139 138 137 136 135 133 131 129 126 122 119 117 114 112 110 110 109
## [2500] 108 107 108 109 110 112 114 115 116 117 119 120 122 126 129 133 137
## [2517] 141 143 146 148 151 155 160 164 167 168 169 170 170 169 168 167 168
## [2534] 166 163 160 158 155 153 150 147 143 140 137 136 134 133 132 130 129
## [2551] 127 125 121 118 115 112 110 110 110 108 107 107 109 110 111 113 115
## [2568] 116 117 118 120 121 123 126 129 133 138 141 143 146 148 150 155 159
## [2585] 163 165 166 167 168 168 166 165 164 161 160 159 158 155 152 149 147
## [2602] 144 141 138 135 134 132 130 129 128 126 124 122 120 117 113 111 110
## [2619] 110 110 108 107 107 110 111 112 113 116 117 118 119 120 122 125 127
## [2636] 130 133 138 141 143 146 148 150 154 159 162 163 164 166 166 166 165
## [2653] 163 161 159 157 156 155 153 150 146 143 140 138 136 133 132 130 129
## [2670] 128 125 124 122 120 119 117 114 111 110 110 109 108 107 107 111 112
## [2687] 113 114 116 117 118 119 120 123 125 128 130 134 139 141 144 146 148
## [2704] 151 154 158 161 164 166 167 168 166 165 163 161 158 156 154 152 150
## [2721] 146 142 139 137 135 133 131 130 129 128 127 125 123 121 120 118 116
## [2738] 113 111 110 110 109 108 107 106 111 112 113 115 117 118 118 120 121
## [2755] 124 126 128 131 135 139 142 144 146 148 151 155 160 164 165 168 169
## [2772] 169 168 166 163 160 158 156 153 151 148 145 142 139 137 135 132 130
## [2789] 129 127 126 125 124 123 120 120 117 116 114 112 110 110 108 107 106
## [2806] 106 112 113 114 116 117 118 119 120 122 124 127 129 132 135 139 142
## [2823] 144 146 149 152 157 162 167 169 170 170 170 168 165 163 161 159 157
## [2840] 155 151 148 145 141 139 136 134 132 130 128 127 126 124 123 122 120
## [2857] 119 117 116 114 112 111 109 107 106 106 105 113 114 115 116 117 119
## [2874] 119 120 122 125 127 129 132 135 139 142 144 147 149 154 159 164 169
## [2891] 170 170 170 170 170 168 165 163 161 158 155 151 148 145 142 139 137
## [2908] 135 132 131 128 126 125 124 122 121 120 119 117 115 113 111 110 109
## [2925] 106 105 105 104 113 114 115 117 118 119 120 121 123 125 127 130 132
## [2942] 135 139 142 145 148 150 156 161 166 170 170 170 170 170 170 169 166
## [2959] 163 161 159 155 151 148 146 143 140 138 135 134 132 130 127 125 123
## [2976] 121 120 120 119 116 114 112 110 110 108 106 105 104 104 114 115 116
## [2993] 117 118 119 120 121 123 126 128 130 133 136 139 142 145 148 152 157
## [3010] 161 166 168 170 170 170 170 168 166 164 163 160 159 155 151 148 146
## [3027] 143 141 138 136 134 132 130 128 125 123 121 120 120 118 116 113 111
## [3044] 110 110 109 106 105 104 104 115 116 117 118 119 120 121 121 123 126
## [3061] 128 131 134 136 139 142 145 149 152 157 161 163 164 166 168 167 166
## [3078] 164 163 161 160 158 156 152 149 147 144 143 141 139 136 134 132 130
## [3095] 128 125 122 120 120 119 117 115 113 110 110 109 107 106 105 104 104
## [3112] 115 116 117 118 119 120 121 122 123 125 128 131 134 137 139 142 145
## [3129] 149 152 156 159 159 160 162 162 161 161 160 159 158 157 155 153 150
## [3146] 148 146 145 143 142 140 137 134 131 129 126 124 122 120 119 117 115
## [3163] 113 111 110 109 109 107 106 105 104 104 114 115 116 116 118 119 120
## [3180] 121 122 126 129 132 135 137 140 143 146 149 152 155 156 157 158 159
## [3197] 159 159 158 158 157 155 153 151 150 149 147 146 145 144 142 141 138
## [3214] 135 132 128 125 122 120 118 117 115 113 112 110 109 108 108 106 105
## [3231] 105 104 104 113 114 115 116 117 118 119 120 123 126 129 132 135 138
## [3248] 140 143 146 148 151 153 154 156 157 157 157 157 156 155 154 152 150
## [3265] 149 148 147 146 145 144 142 141 140 139 136 132 129 125 121 118 116
## [3282] 115 113 111 110 109 108 108 107 106 105 104 104 104 112 113 114 115
## [3299] 116 117 119 120 122 126 130 133 136 138 141 143 146 148 150 152 154
## [3316] 155 155 155 155 155 154 152 152 150 148 147 146 145 145 143 142 141
## [3333] 140 140 140 137 133 129 125 120 117 115 111 110 110 109 108 107 107
## [3350] 106 105 105 104 104 103 111 112 114 115 116 117 118 120 122 125 131
## [3367] 134 137 139 142 144 146 148 150 152 153 153 153 153 153 153 153 151
## [3384] 149 147 146 144 144 143 143 142 141 140 140 140 140 138 134 130 123
## [3401] 120 118 111 110 110 110 108 107 106 108 105 105 104 104 103 103 111
## [3418] 112 113 115 115 116 117 119 121 126 131 135 138 140 142 144 146 148
## [3435] 150 151 151 151 151 151 151 151 151 150 148 146 144 142 141 141 142
## [3452] 141 140 140 140 140 140 140 136 132 126 120 115 110 110 110 109 107
## [3469] 106 105 107 105 104 104 104 103 103 112 113 113 114 115 116 117 119
## [3486] 122 127 132 135 139 141 143 145 147 149 150 150 150 150 150 150 150
## [3503] 150 150 149 147 144 142 141 140 140 140 140 140 140 140 140 140 140
## [3520] 137 133 128 120 117 110 110 110 108 106 105 105 106 105 104 104 103
## [3537] 103 103 112 113 114 114 116 117 118 120 122 128 132 136 139 141 144
## [3554] 146 147 149 150 150 150 150 150 150 150 150 150 149 146 143 141 140
## [3571] 140 139 139 139 140 140 140 140 140 140 137 133 129 121 118 110 110
## [3588] 109 107 106 105 105 105 104 104 103 103 103 102 112 114 114 115 116
## [3605] 117 119 120 122 128 133 136 140 142 144 146 148 150 150 150 150 150
## [3622] 150 150 150 150 150 148 145 142 140 138 138 138 137 138 140 140 140
## [3639] 140 140 140 137 134 130 122 118 110 110 108 106 105 103 104 104 104
## [3656] 104 103 103 102 102 113 114 115 116 116 117 118 120 123 129 133 137
## [3673] 140 142 144 146 149 150 150 150 150 150 150 150 150 150 150 147 143
## [3690] 141 139 137 136 136 135 136 138 140 140 140 140 139 136 134 130 123
## [3707] 119 113 109 108 106 104 103 104 104 104 103 103 102 102 101 114 115
## [3724] 115 116 117 118 118 120 123 129 133 137 140 143 145 147 150 150 150
## [3741] 150 150 150 150 150 150 150 148 145 142 139 138 136 135 134 134 134
## [3758] 136 138 137 138 139 137 134 132 125 122 117 114 109 107 105 103 102
## [3775] 104 104 103 103 102 102 101 101 114 115 116 117 117 119 118 120 123
## [3792] 128 132 136 139 142 145 148 150 150 150 150 150 150 150 150 150 150
## [3809] 147 144 141 139 136 135 134 133 132 132 134 134 134 134 135 133 131
## [3826] 128 124 120 116 113 110 107 104 102 102 103 103 103 102 102 102 101
## [3843] 100 115 116 116 117 118 119 119 120 124 128 132 136 139 142 145 148
## [3860] 150 150 150 150 150 150 150 150 150 149 146 143 140 138 135 134 133
## [3877] 131 131 131 131 131 131 131 130 127 124 122 119 117 115 112 109 106
## [3894] 104 101 102 103 103 102 102 102 101 100 100 115 116 117 118 118 119
## [3911] 120 123 125 128 131 135 138 141 145 148 150 150 150 150 150 150 150
## [3928] 150 150 147 145 142 139 137 134 132 131 130 129 128 128 128 128 128
## [3945] 126 123 121 119 116 114 112 110 108 105 103 101 103 103 103 102 102
## [3962] 101 100 100 100 116 117 118 118 119 120 122 123 125 128 131 134 137
## [3979] 141 145 148 149 150 150 150 150 150 150 150 148 145 143 141 138 135
## [3996] 133 130 129 128 127 126 125 125 125 124 123 120 118 116 114 111 109
## [4013] 107 106 104 102 100 101 101 102 102 101 100 100 100 100 116 117 118
## [4030] 119 120 121 123 124 126 128 130 133 137 140 144 145 147 148 149 150
## [4047] 149 149 147 146 144 141 139 136 133 131 129 128 127 126 125 124 123
## [4064] 123 122 121 120 118 116 114 112 108 107 105 103 102 100 100 100 100
## [4081] 101 101 100 100 100 100 100 117 118 119 119 120 121 123 124 126 128
## [4098] 129 131 135 139 142 143 145 146 147 147 147 146 144 142 140 138 135
## [4115] 133 130 128 127 126 125 124 123 122 121 120 119 118 117 115 114 112
## [4132] 110 106 105 102 101 100 100 100 100 100 100 100 100  99  99  99  99
## [4149] 117 118 119 120 120 121 123 124 125 126 128 129 132 137 140 142 143
## [4166] 143 144 144 144 143 141 139 137 135 133 130 128 127 126 125 123 122
## [4183] 121 120 119 117 116 115 114 112 111 108 107 105 100 100 100 100 100
## [4200] 100 100  99  99  99  99  99  99  99  98 116 117 118 120 120 121 122
## [4217] 123 124 125 126 128 130 134 139 140 141 141 141 141 141 140 138 136
## [4234] 134 133 131 129 127 125 124 123 122 120 119 118 117 116 114 112 111
## [4251] 108 109 106 106 100 100 100 100 100  99  99  99  99  99  99  99  98
## [4268]  98  98  97 114 115 116 117 119 119 120 121 122 123 125 127 129 133
## [4285] 136 134 134 136 138 138 137 137 135 133 132 130 129 127 125 124 122
## [4302] 121 120 119 117 116 115 114 112 110 109 108 107 105 105 100 100 100
## [4319] 100  99  99  99  98  98  98  98  98  97  97  97  97 112 113 114 115
## [4336] 116 116 117 119 120 122 124 126 127 129 129 128 127 129 132 133 133
## [4353] 133 133 131 129 127 126 125 124 122 121 119 118 117 116 114 113 112
## [4370] 110 109 108 106 106 105 100 100 100  98  98  98  98  98  98  97  97
## [4387]  97  97  97  97  97  96 109 111 112 112 113 113 113 114 116 119 121
## [4404] 123 124 125 124 123 123 123 125 127 129 129 128 128 127 125 124 123
## [4421] 122 121 119 118 117 116 114 113 112 110 109 108 107 106 105 100 100
## [4438] 100  97  97  97  97  97  97  97  96  96  96  96  96  96  96  96 106
## [4455] 107 108 108 109 110 110 112 113 114 117 119 120 121 119 117 117 117
## [4472] 118 120 123 124 125 125 125 123 121 120 120 119 118 117 116 115 114
## [4489] 113 111 109 109 107 106 105 100 100 100  96  96  96  96  96  96  96
## [4506]  96  96  96  96  96  96  96  96  96 104 105 105 106 106 107 108 108
## [4523] 109 109 111 115 116 114 113 112 111 110 111 113 116 119 122 122 122
## [4540] 121 120 119 118 118 117 116 115 114 113 112 111 108 108 106 105 100
## [4557] 100 100  96  96  96  96  96  96  96  96  96  96  96  96  96  96  96
## [4574]  96  96 102 103 103 104 104 105 106 106 107 108 109 111 112 110 109
## [4591] 108 108 108 108 109 110 112 116 117 117 118 118 118 117 116 116 115
## [4608] 114 113 112 111 110 107 107 105 100 100 100  97  96  96  96  96  96
## [4625]  96  96  96  96  96  96  96  96  96  96  96  96 101 102 103 103 104
## [4642] 105 105 106 106 107 108 109 109 107 106 106 105 105 105 106 107 108
## [4659] 109 110 111 113 114 115 115 115 114 113 112 111 110 108 108 106 105
## [4676] 100 100 100  97  97  96  96  96  96  96  96  96  96  96  96  96  96
## [4693]  96  96  96  96  96 100 101 102 102 103 103 104 104 105 106 106 107
## [4710] 106 106 106 105 105 104 103 103 104 105 107 108 110 111 111 112 112
## [4727] 113 113 112 111 110 108 107 106 105 100 100 100  98  97  97  96  96
## [4744]  96  96  96  96  96  96  96  96  96  96  96  96  96  96  96 100 101
## [4761] 101 102 102 103 103 104 104 105 105 105 105 106 105 105 104 103 102
## [4778] 101 102 103 104 106 107 110 111 111 111 112 112 112 110 107 107 106
## [4795] 105 102 100 100  99  98  97  97  96  96  96  96  96  96  96  96  96
## [4812]  96  96  96  96  96  96  96  95  99 100 101 102 102 103 103 103 104
## [4829] 104 104 104 103 104 104 104 104 102 101 101 102 103 104 105 107 110
## [4846] 111 111 111 111 111 111 108 106 105 105 102 101 100  99  99  98  97
## [4863]  97  96  96  96  96  96  96  96  96  96  96  96  96  96  96  96  95
## [4880]  95  99 100 100 101 101 102 102 102 103 103 103 103 102 103 103 104
## [4897] 103 102 101 101 101 102 103 104 106 109 110 111 111 111 110 110 107
## [4914] 105 103 104 100 100  99  99  98  98  97  97  96  96  96  96  96  96
## [4931]  96  96  96  96  95  95  95  95  95  95  95  99 100 100 100 101 101
## [4948] 101 102 102 103 102 102 101 102 102 103 103 101 101 100 101 101 102
## [4965] 103 105 109 110 110 111 110 110 109 106 105 100 102 100  99  99  99
## [4982]  98  98  97  97  96  96  96  96  96  96  95  95  95  95  95  95  95
## [4999]  95  95  95  94  99  99  99  99 100 100 101 101 102 102 101 101 101
## [5016] 101 101 102 102 101 100 100 101 101 101 103 104 107 109 109 110 110
## [5033] 109 108 105 102 100 100  99  99  99  98  98  98  97  96  96  96  96
## [5050]  96  95  95  95  95  95  95  95  94  94  94  94  94  94  98  99  99
## [5067]  99  99 100 100 101 101 102 101 100 100 100 101 101 101 100 100 100
## [5084] 100 101 101 101 103 106 107 109 109 109 109 107 104 101 100  99  99
## [5101]  99  98  98  98  97  96  96  96  96  95  95  95  95  95  95  95  94
## [5118]  94  94  94  94  94  94  94  98  98  98  99  99  99 100 100 101 101
## [5135] 100 100  99  99 100 100 100 100 100 100 100 101 101 101 102 105 106
## [5152] 109 108 109 107 105 102 100 100  99  99  98  98  98  97  96  96  96
## [5169]  96  95  95  95  95  95  95  94  94  94  94  94  94  94  94  94  94
## [5186]  97  98  98  98  99  99  99 100 100 100 100 100  99  99  99 100 100
## [5203] 100 100 100 100 100 101 101 101 103 104 105 106 105 104 101 100 100
## [5220]  99  99  98  98  97  97  97  96  96  96  95  95  95  95  95  94  94
## [5237]  94  94  94  94  94  94  94  94  94  94  97  97  97  98  98  99  99
## [5254]  99 100 100 100  99  99  99  99  99 100 100 100 100 100 100 101 101
## [5271] 100 100 100 100 100 100 100 100 100 100  99  99  98  97  97  97  96
## [5288]  96  96  95  95  95  95  94  94  94  94  94  94  94  94  94  94  94
## [5305]  94  94  94

Indexing objects – Questions and activities

  • Time: 10 minutes
  • We work with objects x, X, D and L
    • Multiply the third and fourth element of x by 10
    • Paste the first column of X into the second element of L
    • Rename the elements of D into c("", "")
    • How can the elements of D be indexed, now?
    • Create a new list in the second element of L

An essential vocabulary

Essential R language bits – Assigning values

  • =, <-, -> and assign(x, value)
    • =, to define function arguments
    • <- or ->, to assign values to objects
a <- 1:10
mean(x = a)
## [1] 5.5

Essential R language bits – Getting information

  • Show the data type: typeof(),
  • Show the data structure: str(),
  • Show first and last parts of objects: head(), tail()
x <- 1:100
head(x)
## [1] 1 2 3 4 5 6
tail(x)
## [1]  95  96  97  98  99 100

Essential R language bits – Boolean expressions

  • AND: & (vectorised) and && (not vectorised),
  • OR | (vectorised) and || (not vectorised)
  • NOT !
1:10 & 1:10
##  [1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
1:10 && 1:10
## [1] TRUE

Essential R language bits – Logical operations

  • A equals B: ==
  • A unequals B: !=
  • A is greater than B: >
  • A is greater than or equal to B: >=
  • Does A contain NA/nan values or is NULL: is.na(), is.nan(), is.null()
1:4 == 1:4
## [1] TRUE TRUE TRUE TRUE
1:4 > rep(2, 4)
## [1] FALSE FALSE  TRUE  TRUE

Essential R language bits – Questions and activities

  • Time: 10 minutes
  • assign a sequence from 1 to 10 by 3 to the object s
  • test which values of s are greater than 5, assign to a new object s_5
  • test which values of s are even (hint: division by two and rounding down)
  • find those values of s that are greater than 5 and even
  • set all values of s to NA that are greater than 5 or even. Check the validity of this operation.

Essential R language bits – Basic arithmetic operations

  • +, -, *, /, ^
  • sqrt(), exp(), log(), log10(), log2()
  • abs(), sign()
  • sin(), cos(), tan(), asin(), acos(), atan()

  • Round round(), Round up ceiling(), Round down floor(), Cut off trunc(), Round to significant digit signif()

Essential R language bits – Simple descripitive statistics

  • Sum sum(), Maximum max(), Minimum min(), Quantile quantile(),
  • Mean mean(), weighted.mean(), Median median()
  • Range range(), Standard deviation sd(), Variance var()
  • Correlation coefficient cor(method = c("pearson", "kendall", "spearman"))

Essential R language bits – "Flow of control"

  • Decisions: if() {}, if() {} else {}, ifelse(), switch()

  • Loops (Attention, to be avoided!): for(),while(), next(), break()
  • R was not written to run loops efficiently, but to handle vector operations efficiently.
  • x <- x * 10 vs. for(i in 1:1000) {x[i] = x[i] * 10} with x <- 1:1000

Essential R language bits – The apply family

  • R is vector based. Thus, loops should be replaced by vectorised operations where possible (and meaningful).
  • Matrices: apply(X, MARGIN, FUN)
  • Lists and data frames: lapply(X, FUN)

  • And further apply functions (sapply() like lapply but returning a vector, vapply() like sapply but for vectors, mapply() for matrices, …)

  • parallel processing with parApply() and parLapply()

Essential R language bits – The apply family, one example

D <- data.frame(x = 1:2, y = 3:4)

lapply(X = D, FUN = mean)
## $x
## [1] 1.5
## 
## $y
## [1] 3.5
lapply(X = D, FUN = function(x, power) {
  x^power
}, power = 2)
## $x
## [1] 1 4
## 
## $y
## [1]  9 16

Last but not least – Some essential terms

  • Object: variable, function, structure, method that can be used in R
  • Variable: Every object that can hold one or more processible value
  • Function: A rule to manipulate variables. Contains function name and arguments, and generates objects (function value)
  • Argument: Option to manipulate the function routine
  • Script: text dokument that contains a sequence of function calls and comments
  • Package: Collection of functions, documentation and examples (plus example data sets)

Hands on – some activity

  • Load the data set "cars" (data(cars))
    • explore the structure
    • extract elements and assign them to a new object, e.g., disp
    • Do some calculus with the extracted values and their indexed subsets
    • Think of some logical operations (which cars use above average fuel?)
    • Get some simple measures of centrality and dispersion
    • Do some basic correlations

Daten importieren

Daten importieren – ASCII-Dateien (Tabellen)

  • Import von ASCII-Dateien mit read.table() (tabellarische Daten, data frame) und readLines() (ungegliederte Daten, vector)
  • Wichtige Argumente
    • file Dateiname
    • header (TRUE / FALSE) Kopfzeile mit Variablennamen
    • sep Spaltentrennzeichen (z.B. ;, \t)
    • na.strings NA-Belegung (z.B. NA, NULL, -9999)
  • Achtung: stringsAsFactors (fast) immer manuell auf FALSE setzen!

Daten importieren – MS Excel (xls und xlsx)

  • Excel-Dateien können mithilfe diverser Packages importiert werden
  • Sinnvollstes Package ist xlsx (Installation mit install.packages("xlsx"))
  • Package xlsx kann sehr viel mehr als Daten importieren (siehe Hilfe)!
  • Funktion xlsx::read.xlsx() importiert einzelne Datenblätter in Data frames
  • Weil Ziel ein Data frame ist, bitte die xls-Dateien so simpel wie möglich halten!

Daten importieren – MS Excel (xls und xlsx)

  • Wichtige Argumente
    • file Dateiname
    • sheetIndex oder sheetName Index oder Name des Tabellenblattes
    • startRow und endRow zu importierendes Intervall
    • header Kopfzeile mit Variablennamen

Daten importieren – Binäre Formate

  • R unterstützt auch den Import von binären Daten
  • Voraussetzung ist, dass die Struktur der binären Daten bekannt ist
  • Schreiben von binären Importfunktionen setzt tieferes Wissen voraus
  • Funktion: readBin()

Daten speichern und exportieren

Daten speichern

  • R besitzt ein eigenes, sehr effizientes Datenformat (.rda oder .RData)
  • In diesem Format können beliebig viele Objekte zusammen gespeichert werden
  • Speichern über Funktion save()
save(X, x, time, raw_data, file = "~/projects/R/data/case_01.rda")
  • Datensammlung kann wieder geladen werden:
load(file = "~/projects/R/data/case_01.rda")

Daten exportieren – ASCII-Tabellen

  • Export von Matrizen oder Data frames über write.table()
  • Andere Datenstrukturen (i.e., Listen oder S4-Objekte) müssen konvertiert werden
  • Wichtige Argumente:
    • x R-Objekt, das exportiert werden soll
    • file Dateiname der Zieldatei
    • sep Spaltentrennzeichen
    • row.names und col.names Zeilen- und Spaltennamen mit exportieren

Daten exportieren – xls

  • Data frames (und auch Matrizen) können in bestehende Excel-Tabellen geschrieben werden
  • Funktion: xlsx::write.xlsx()
  • Wichtige Argumente:
    • x R-Objekt, das exportiert werden soll
    • file Dateiname der Zieldatei
    • sheetName Arbeitsblattname
    • row.names und col.names Zeilen- und Spaltennamen mit exportieren

Plots in R

Plots in R – Krampf oder Eleganz?

  • Die Erstellung von Plots in R is fundamental anders als z.B. in MS Excel
    • Definition was wie dargestellt wird, wird vorweg definiert
    • Einmal erzeugte Plots sind (fast) nicht mehr veränderbar
    • Sämtliche Ploteinstellungen erfolgen über Funktionsargumente
  • Dieser Ansatz wird anfangs (z.T. zu Recht) als unlogisch und lästig empfunden
  • Aber… zum Glück kümmert sich Stefan darum, oder?

Plot devices – pdf und jpg

  • Plots können (und sollten) als Vektor- oder Rastergrafiken gespeichert werden
  • Die Exportfunktion von RStudio ist nur begrenzt wertvoll
  • Screenshots und Copy-Paste-Lösungen sind ein "Armutszeugnis"

  • R besitzt mehrere sog. plot devices (Plotausgaben)
  • Genereller Ablauf ist:
    • Plot device öffnen (leere Datei anlegen)
    • Plot erzeugen
    • Plot device schließen (Datei speichern)

Plot devices – pdf und jpg

  • PDF-Dateien erzeugen, sinnvoll bei Vektorgrafiken
pdf(file = "~/R/plots/plot_01.pdf", width = 5, height = 4) # device öffnen

hist(rnorm(1000)) # Plot erzeugen

dev.off() # device schließen
  • JPEG-Dateien erzeugen, sinnvoll bei Rastergrafiken
jpeg(filename = "~/R/plots/plot_02.jpg", width = 2000, height = 1500, res = 300) # device öffnen

hist(rnorm(1000)) # Plot erzeugen

dev.off() # device schließen

Das Schließen des Plot devices ist essentiell, um wieder auf dem Bildschirm Plots zu sehen!

Daten selektieren

Daten selektieren – Einleitung

  • Anwendung vieler bisheriger Kenntnisse
    • Indizierung
    • Logische Operatoren
    • if() und ifelse()
  • Nötig, um die Datensätze von Interesse zu selektieren
  • Grundprinzip: Isolation von Fällen (Zeilen) durch einen Spaltenindex

  • Arbeit hier mit einem Data frame (eigener oder data(cars))

Daten selektieren – Die Werkzeuge

  • which()
    • Erzeugt Indexvektor (Zeilennummer) aufgrund einer logischen Abfrage
    • Beispiel: which(cars$speed > 20), cars[which(cars$speed > 20),]
  • Direkte Bool'sche Indizierung
    • Beispiel: seq(1, nrow(cars))[cars$speed > 20], cars[cars$speed > 20,]
  • Verknüpfung mehrerer logischer Ausdrücke
    • Beispiel: cars[cars$speed > 20 & cars$dist < 70,]

Daten selektieren – Die Werkzeuge

  • Mustererkennung mit grepl()
    • Beispiel: cars[grepl(x = cars$speed, pattern = 24),]
  • Mustergruppierung mit match()
    • match(x = cars$speed, table = c(18, 24))
    • Nützlich in Verbindung mit aggregate(), unique() und which()

Daten selektieren – Fragen und Übungen

  • Zeit: 5 Minuten, Art: Diskussion und selbständige Arbeit

  • Arbeiten Sie mit Ihrem eigenen Datensatz (alternativ mit data(mtcars))
    • Erstellen Sie Indexvektoren anhand der oben besprochenen Tools
    • Isolieren Sie Teildatensätze (sinnvolle Objektnamen vergeben)
    • Lesen Sie die Hilfe für aggregate() und unique(). Wozu können diese Funktionen sinnvoll genutzt werden?

Daten analysieren – I

Daten analysieren – Deskriptive Statistik in Zahlen

  • Einfache statistische Zusammenfassung mit summary() (Min, Max, arithm. Mittel, Median, 1. und 3. Quartil)
  • Alle diese Funktionen sind auch einzeln aufrufbar (min(), max(), mean(), median(), quantile())
  • Anzahl an Werten mit length() oder nrow
  • Streuungsmaße mit range(), var(), sd()

Daten analysieren – Deskriptive Statistik in Zahlen

  • Viele Funktionen haben weitere Argumente, die einen Blick wert sind
    • mean() mit trim, um Ausreißer abzuschneiden
    • weighted.mean(), um (fehler-)gewichtete Mittelwerte zu rechnen
    • quantile() besitzt 9 verschiedene Rechenmethoden

Daten analysieren – Korrelation (Varianz & Kovarianz) von Datenreihen

  • Korrelation (cor()), Varianz (var()) und Kovarianz (cov()) können für eine Matrix oder paarweise für Vektoren (Data frame-Elemente) berechnet werden
cor(cars)
##           speed      dist
## speed 1.0000000 0.8068949
## dist  0.8068949 1.0000000
cor(cars$speed, cars$dist)
## [1] 0.8068949

Daten analysieren – Korrelationstests

  • Achtung! Vollständiger Korrelationstest mit cor.test()
test <- cor.test(x = cars$speed, y = cars$dist, method = "pearson")
print(test)
## 
##  Pearson's product-moment correlation
## 
## data:  cars$speed and cars$dist
## t = 9.464, df = 48, p-value = 1.49e-12
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.6816422 0.8862036
## sample estimates:
##       cor 
## 0.8068949
str(test)
## List of 9
##  $ statistic  : Named num 9.46
##   ..- attr(*, "names")= chr "t"
##  $ parameter  : Named int 48
##   ..- attr(*, "names")= chr "df"
##  $ p.value    : num 1.49e-12
##  $ estimate   : Named num 0.807
##   ..- attr(*, "names")= chr "cor"
##  $ null.value : Named num 0
##   ..- attr(*, "names")= chr "correlation"
##  $ alternative: chr "two.sided"
##  $ method     : chr "Pearson's product-moment correlation"
##  $ data.name  : chr "cars$speed and cars$dist"
##  $ conf.int   : atomic [1:2] 0.682 0.886
##   ..- attr(*, "conf.level")= num 0.95
##  - attr(*, "class")= chr "htest"

Daten analysieren – Kontingenztabellen

  • Kontingenztabellen werden erzeugt durch Kreuzklassifikation (table)
table(cars[1:15,])
##      dist
## speed 2 4 10 14 16 17 18 20 22 24 26 28 34
##    4  1 0  1  0  0  0  0  0  0  0  0  0  0
##    7  0 1  0  0  0  0  0  0  1  0  0  0  0
##    8  0 0  0  0  1  0  0  0  0  0  0  0  0
##    9  0 0  1  0  0  0  0  0  0  0  0  0  0
##    10 0 0  0  0  0  0  1  0  0  0  1  0  1
##    11 0 0  0  0  0  1  0  0  0  0  0  1  0
##    12 0 0  0  1  0  0  0  1  0  1  0  1  0

Daten analysieren – Stem-and-leaf-Plots

  • Stem-and-leaf-Plots sind einfache direkte Darstellung klassifizierter Häufgkeiten
stem(cars$speed)
## 
##   The decimal point is at the |
## 
##    4 | 00
##    6 | 00
##    8 | 00
##   10 | 00000
##   12 | 00000000
##   14 | 0000000
##   16 | 00000
##   18 | 0000000
##   20 | 00000
##   22 | 00
##   24 | 00000

Daten analysieren – graphische Funktionen

  • Vor allem explorative und repräsentative Zwecke
  • Datenreihen gegeneinander oder übereinander plotten
  • Plots, die die Datenverteilung beschreiben

Graphische Darstellungen – Daten gegeneinander

par(mfcol = c(1, 2), mar = c(5, 4, 2, 1))
cars_sort <- cars[order(cars$speed),]
plot(x = cars$speed, y = cars$dist)
plot(x = cars_sort$speed, y = cars_sort$dist, type = "l")

Graphische Darstellungen – qq-Plots

par(mfcol = c(1, 2), mar = c(5, 4, 2, 1))
qqplot(x = cars$speed, y = cars$dist)
qqnorm(cars$speed)

Graphische Darstellungen – Histogramme

par(mfcol = c(1, 2), mar = c(5, 4, 2, 1))
hist(x = cars$speed)
H <- hist(x = cars$dist, breaks = 15, col = "peachpuff")
rug(x = cars$dist)

Graphische Darstellungen – Kernel Density Estimate plots

par(mfcol = c(1, 2), mar = c(5, 4, 2, 1))
D <- density(x = cars$speed)
plot(D)
rug(x = cars$speed)
plot(density(cars$dist, bw = 1))

Verteilungen testen – Kolmogorov-Smirnov-Test

  • KS-Test testet, ob Daten aus der gleichen Verteilung wie die Referenzverteilung stammen
  • Test basiert auf Vergleich der gesamten Verteilung
x <- rnorm(1000000)
ks.test(x = x, y = "pnorm")
## 
##  One-sample Kolmogorov-Smirnov test
## 
## data:  x
## D = 0.00076416, p-value = 0.6034
## alternative hypothesis: two-sided

Verteilungen testen – Kolmogorov-Smirnov-Test

  • KS-Test testet, ob Daten aus der gleichen Verteilung wie die Referenzverteilung stammen
  • Test basiert auf Vergleich der gesamten Verteilung
ks.test(x = cars$speed, y = cars$dist)
## Warning in ks.test(x = cars$speed, y = cars$dist): cannot compute exact p-
## value with ties
## 
##  Two-sample Kolmogorov-Smirnov test
## 
## data:  cars$speed and cars$dist
## D = 0.76, p-value = 5.735e-13
## alternative hypothesis: two-sided

Verteilungen testen – t-Test

  • Test basiert auf Vergleich von Mittelwerten
t.test(x = rnorm(10000, 100))
## 
##  One Sample t-test
## 
## data:  rnorm(10000, 100)
## t = 9988.3, df = 9999, p-value < 2.2e-16
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
##   99.9745 100.0137
## sample estimates:
## mean of x 
##  99.99413

Verteilungen testen – weitere Tests

  • Shapiro-Wilk-Test (nur für Normalverteilungen)
  • Cramér–von Mises distance und Anderson–Darling
  • Chi-Quadrat-Test
  • usw.

Daten modellieren

Daten modellieren – Regressionsanalyse

  • Anpassen eines (linearen) Modells an einen empirischen Datensatz
  • Möglichkeit der Vorhersage von Daten aufgrund des empirischen Datensatzes
  • Beschreibt den Zusammenhang zwischen unabhängigen und abhängigen Variablen
  • In R sehr viele und flexible Regressionsmöglichkeiten

  • Im einfachsten Fall: lineare Regression mit lm()
  • Benötigt zwei Vektoren oder einen Data frame mit zwei Variablen
  • Benötigt die Angabe eines Modells (z.B. y ~ x)

Daten modellieren – Regressionsanalyse

## Einfache Regression
model <- lm(formula = cars$dist ~ cars$speed)

## Alternative bei Data frames
model <- lm(formula = dist ~ speed, data = cars)

## Zusammenfassung
summary(model)
## 
## Call:
## lm(formula = dist ~ speed, data = cars)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -29.069  -9.525  -2.272   9.215  43.201 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -17.5791     6.7584  -2.601   0.0123 *  
## speed         3.9324     0.4155   9.464 1.49e-12 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 15.38 on 48 degrees of freedom
## Multiple R-squared:  0.6511, Adjusted R-squared:  0.6438 
## F-statistic: 89.57 on 1 and 48 DF,  p-value: 1.49e-12

Daten modellieren – Regressionsanalyse

str(model)
## List of 12
##  $ coefficients : Named num [1:2] -17.58 3.93
##   ..- attr(*, "names")= chr [1:2] "(Intercept)" "speed"
##  $ residuals    : Named num [1:50] 3.85 11.85 -5.95 12.05 2.12 ...
##   ..- attr(*, "names")= chr [1:50] "1" "2" "3" "4" ...
##  $ effects      : Named num [1:50] -303.914 145.552 -8.115 9.885 0.194 ...
##   ..- attr(*, "names")= chr [1:50] "(Intercept)" "speed" "" "" ...
##  $ rank         : int 2
##  $ fitted.values: Named num [1:50] -1.85 -1.85 9.95 9.95 13.88 ...
##   ..- attr(*, "names")= chr [1:50] "1" "2" "3" "4" ...
##  $ assign       : int [1:2] 0 1
##  $ qr           :List of 5
##   ..$ qr   : num [1:50, 1:2] -7.071 0.141 0.141 0.141 0.141 ...
##   .. ..- attr(*, "dimnames")=List of 2
##   .. .. ..$ : chr [1:50] "1" "2" "3" "4" ...
##   .. .. ..$ : chr [1:2] "(Intercept)" "speed"
##   .. ..- attr(*, "assign")= int [1:2] 0 1
##   ..$ qraux: num [1:2] 1.14 1.27
##   ..$ pivot: int [1:2] 1 2
##   ..$ tol  : num 1e-07
##   ..$ rank : int 2
##   ..- attr(*, "class")= chr "qr"
##  $ df.residual  : int 48
##  $ xlevels      : Named list()
##  $ call         : language lm(formula = dist ~ speed, data = cars)
##  $ terms        :Classes 'terms', 'formula'  language dist ~ speed
##   .. ..- attr(*, "variables")= language list(dist, speed)
##   .. ..- attr(*, "factors")= int [1:2, 1] 0 1
##   .. .. ..- attr(*, "dimnames")=List of 2
##   .. .. .. ..$ : chr [1:2] "dist" "speed"
##   .. .. .. ..$ : chr "speed"
##   .. ..- attr(*, "term.labels")= chr "speed"
##   .. ..- attr(*, "order")= int 1
##   .. ..- attr(*, "intercept")= int 1
##   .. ..- attr(*, "response")= int 1
##   .. ..- attr(*, ".Environment")=<environment: R_GlobalEnv> 
##   .. ..- attr(*, "predvars")= language list(dist, speed)
##   .. ..- attr(*, "dataClasses")= Named chr [1:2] "numeric" "numeric"
##   .. .. ..- attr(*, "names")= chr [1:2] "dist" "speed"
##  $ model        :'data.frame':   50 obs. of  2 variables:
##   ..$ dist : num [1:50] 2 10 4 22 16 10 18 26 34 17 ...
##   ..$ speed: num [1:50] 4 4 7 7 8 9 10 10 10 11 ...
##   ..- attr(*, "terms")=Classes 'terms', 'formula'  language dist ~ speed
##   .. .. ..- attr(*, "variables")= language list(dist, speed)
##   .. .. ..- attr(*, "factors")= int [1:2, 1] 0 1
##   .. .. .. ..- attr(*, "dimnames")=List of 2
##   .. .. .. .. ..$ : chr [1:2] "dist" "speed"
##   .. .. .. .. ..$ : chr "speed"
##   .. .. ..- attr(*, "term.labels")= chr "speed"
##   .. .. ..- attr(*, "order")= int 1
##   .. .. ..- attr(*, "intercept")= int 1
##   .. .. ..- attr(*, "response")= int 1
##   .. .. ..- attr(*, ".Environment")=<environment: R_GlobalEnv> 
##   .. .. ..- attr(*, "predvars")= language list(dist, speed)
##   .. .. ..- attr(*, "dataClasses")= Named chr [1:2] "numeric" "numeric"
##   .. .. .. ..- attr(*, "names")= chr [1:2] "dist" "speed"
##  - attr(*, "class")= chr "lm"

Daten modellieren – Regressionsanalyse

  • coef() Modellkoeffizienten
  • residuals() Modellresiduals
  • fitted() Angepasste Werte
  • deviance() Summe der Residual-Quadrate
  • anova() ANOVA
  • predict() Vorhersagen mit dem Modell
  • plot() Vier deskriptive Plots des Modells

Daten modellieren – weitere Modelle

  • Multiple lineare Regression lm(y ~ x1 + x2 + x3, data=mydata)
  • Logistische Regression glm(..., family = "logit")
  • Nichtlineare Regression nls(y ~ a * x / (b + x))

Schnittstellen

Schnittstellen zwischen R und SPSS

Probieren und Diskutieren

Was soll man da in Folien packen?

  • Die Präsentation ist am Ende!
  • Zeit zum Diskutieren und Probieren!

  • Welche Themen blieben unberührt?
  • Wo ging es zu schnell?
  • Was verdient mehr Gewicht?

  • Feedback: BITTE HIER KLICKEN

Geschafft