cast-9g.rdCast a molten data frame into the reshaped or aggregated form you want
cast(data, formula = ... ~ variable, fun.aggregate=NULL, ...,
margins=FALSE, subset=TRUE, df=FALSE, fill=NULL, add.missing=FALSE,
value = guess_value(data))molten data frame, see melt
casting formula, see details for specifics
aggregation function
fill in missing combinations?
name of value column
further arguments are passed to aggregating function
vector of variable names (can include "grand_col" and "grand_row") to compute margins for, or TRUE to computer all margins
logical vector to subset data set with before reshaping
argument used internally
value with which to fill in structural missings, defaults to value from applying fun.aggregate to 0 length vector
Along with melt and recast, this is the only function you should ever need to use.
Once you have melted your data, cast will arrange it into the form you desire
based on the specification given by formula.
The cast formula has the following format: x_variable + x_2 ~ y_variable + y_2 ~ z_variable ~ ... | list_variable + ...
The order of the variables makes a difference. The first varies slowest, and the last
fastest. There are a couple of special variables: "..." represents all other variables
not used in the formula and "." represents no variable, so you can do formula=var1 ~ .
Creating high-D arrays is simple, and allows a class of transformations that are hard
without apply and sweep
If the combination of variables you supply does not uniquely identify one row in the
original data set, you will need to supply an aggregating function, fun.aggregate.
This function should take a vector of numbers and return a summary statistic(s). It must
return the same number of arguments regardless of the length of the input vector.
If it returns multiple value you can use "result_variable" to control where they appear.
By default they will appear as the last column variable.
The margins argument should be passed a vector of variable names, eg.
c("month","day"). It will silently drop any variables that can not be margined
over. You can also use "grand_col" and "grand_row" to get grand row and column margins
respectively.
Subset takes a logical vector that will be evaluated in the context of data,
so you can do something like subset = variable=="length"
All the actual reshaping is done by reshape1, see its documentation
for details of the implementation
#Air quality example
names(airquality) <- tolower(names(airquality))
aqm <- melt(airquality, id=c("month", "day"), na.rm=TRUE)
cast(aqm, day ~ month ~ variable)
#> , , variable = ozone
#>
#> month
#> day 5 6 7 8 9
#> 1 41 NA 135 39 96
#> 2 36 NA 49 9 78
#> 3 12 NA 32 16 73
#> 4 18 NA NA 78 91
#> 5 NA NA 64 35 47
#> 6 28 NA 40 66 32
#> 7 23 29 77 122 20
#> 8 19 NA 97 89 23
#> 9 8 71 97 110 21
#> 10 NA 39 85 NA 24
#> 11 7 NA NA NA 44
#> 12 16 NA 10 44 21
#> 13 11 23 27 28 28
#> 14 14 NA NA 65 9
#> 15 18 NA 7 NA 13
#> 16 14 21 48 22 46
#> 17 34 37 35 59 18
#> 18 6 20 61 23 13
#> 19 30 12 79 31 24
#> 20 11 13 63 44 16
#> 21 1 NA 16 21 13
#> 22 11 NA NA 9 23
#> 23 4 NA NA NA 36
#> 24 32 NA 80 45 7
#> 25 NA NA 108 168 14
#> 26 NA NA 20 73 30
#> 27 NA NA 52 NA NA
#> 28 23 NA 82 76 14
#> 29 45 NA 50 118 18
#> 30 115 NA 64 84 20
#> 31 37 NA 59 85 NA
#>
#> , , variable = solar.r
#>
#> month
#> day 5 6 7 8 9
#> 1 190 286 269 83 167
#> 2 118 287 248 24 197
#> 3 149 242 236 77 183
#> 4 313 186 101 NA 189
#> 5 NA 220 175 NA 95
#> 6 NA 264 314 NA 92
#> 7 299 127 276 255 252
#> 8 99 273 267 229 220
#> 9 19 291 272 207 230
#> 10 194 323 175 222 259
#> 11 NA 259 139 137 236
#> 12 256 250 264 192 259
#> 13 290 148 175 273 238
#> 14 274 332 291 157 24
#> 15 65 322 48 64 112
#> 16 334 191 260 71 237
#> 17 307 284 274 51 224
#> 18 78 37 285 115 27
#> 19 322 120 187 244 238
#> 20 44 137 220 190 201
#> 21 8 150 7 259 238
#> 22 320 59 258 36 14
#> 23 25 91 295 255 139
#> 24 92 250 294 212 49
#> 25 66 135 223 238 20
#> 26 266 127 81 215 193
#> 27 NA 47 82 153 145
#> 28 13 98 213 203 191
#> 29 252 31 275 225 131
#> 30 223 138 253 237 223
#> 31 279 NA 254 188 NA
#>
#> , , variable = wind
#>
#> month
#> day 5 6 7 8 9
#> 1 7.4 8.6 4.1 6.9 6.9
#> 2 8.0 9.7 9.2 13.8 5.1
#> 3 12.6 16.1 9.2 7.4 2.8
#> 4 11.5 9.2 10.9 6.9 4.6
#> 5 14.3 8.6 4.6 7.4 7.4
#> 6 14.9 14.3 10.9 4.6 15.5
#> 7 8.6 9.7 5.1 4.0 10.9
#> 8 13.8 6.9 6.3 10.3 10.3
#> 9 20.1 13.8 5.7 8.0 10.9
#> 10 8.6 11.5 7.4 8.6 9.7
#> 11 6.9 10.9 8.6 11.5 14.9
#> 12 9.7 9.2 14.3 11.5 15.5
#> 13 9.2 8.0 14.9 11.5 6.3
#> 14 10.9 13.8 14.9 9.7 10.9
#> 15 13.2 11.5 14.3 11.5 11.5
#> 16 11.5 14.9 6.9 10.3 6.9
#> 17 12.0 20.7 10.3 6.3 13.8
#> 18 18.4 9.2 6.3 7.4 10.3
#> 19 11.5 11.5 5.1 10.9 10.3
#> 20 9.7 10.3 11.5 10.3 8.0
#> 21 9.7 6.3 6.9 15.5 12.6
#> 22 16.6 1.7 9.7 14.3 9.2
#> 23 9.7 4.6 11.5 12.6 10.3
#> 24 12.0 6.3 8.6 9.7 10.3
#> 25 16.6 8.0 8.0 3.4 16.6
#> 26 14.9 8.0 8.6 8.0 6.9
#> 27 8.0 10.3 12.0 5.7 13.2
#> 28 12.0 11.5 7.4 9.7 14.3
#> 29 14.9 14.9 7.4 2.3 8.0
#> 30 5.7 8.0 7.4 6.3 11.5
#> 31 7.4 NA 9.2 6.3 NA
#>
#> , , variable = temp
#>
#> month
#> day 5 6 7 8 9
#> 1 67 78 84 81 91
#> 2 72 74 85 81 92
#> 3 74 67 81 82 93
#> 4 62 84 84 86 93
#> 5 56 85 83 85 87
#> 6 66 79 83 87 84
#> 7 65 82 88 89 80
#> 8 59 87 92 90 78
#> 9 61 90 92 90 75
#> 10 69 87 89 92 73
#> 11 74 93 82 86 81
#> 12 69 92 73 86 76
#> 13 66 82 81 82 77
#> 14 68 80 91 80 71
#> 15 58 79 80 79 71
#> 16 64 77 81 77 78
#> 17 66 72 82 79 67
#> 18 57 65 84 76 76
#> 19 68 73 87 78 68
#> 20 62 76 85 78 82
#> 21 59 77 74 77 64
#> 22 73 76 81 72 71
#> 23 61 76 82 75 81
#> 24 61 76 86 79 69
#> 25 57 75 85 81 63
#> 26 58 78 82 86 70
#> 27 57 73 86 88 77
#> 28 67 80 88 97 75
#> 29 81 77 86 94 76
#> 30 79 83 83 96 68
#> 31 76 NA 81 94 NA
#>
cast(aqm, month ~ variable, mean)
#> month ozone solar.r wind temp
#> 1 5 23.61538 181.2963 11.622581 65.54839
#> 2 6 29.44444 190.1667 10.266667 79.10000
#> 3 7 59.11538 216.4839 8.941935 83.90323
#> 4 8 59.96154 171.8571 8.793548 83.96774
#> 5 9 31.44828 167.4333 10.180000 76.90000
cast(aqm, month ~ . | variable, mean)
#> $ozone
#> month (all)
#> 1 5 23.61538
#> 2 6 29.44444
#> 3 7 59.11538
#> 4 8 59.96154
#> 5 9 31.44828
#>
#> $solar.r
#> month (all)
#> 1 5 181.2963
#> 2 6 190.1667
#> 3 7 216.4839
#> 4 8 171.8571
#> 5 9 167.4333
#>
#> $wind
#> month (all)
#> 1 5 11.622581
#> 2 6 10.266667
#> 3 7 8.941935
#> 4 8 8.793548
#> 5 9 10.180000
#>
#> $temp
#> month (all)
#> 1 5 65.54839
#> 2 6 79.10000
#> 3 7 83.90323
#> 4 8 83.96774
#> 5 9 76.90000
#>
cast(aqm, month ~ variable, mean, margins=c("grand_row", "grand_col"))
#> month ozone solar.r wind temp (all)
#> 1 5 23.61538 181.2963 11.622581 65.54839 68.70696
#> 2 6 29.44444 190.1667 10.266667 79.10000 87.38384
#> 3 7 59.11538 216.4839 8.941935 83.90323 93.49748
#> 4 8 59.96154 171.8571 8.793548 83.96774 79.71207
#> 5 9 31.44828 167.4333 10.180000 76.90000 71.82689
#> 6 (all) 42.12931 185.9315 9.957516 77.88235 80.05722
cast(aqm, day ~ month, mean, subset=variable=="ozone")
#> day 5 6 7 8 9
#> 1 1 41 NaN 135 39 96
#> 2 2 36 NaN 49 9 78
#> 3 3 12 NaN 32 16 73
#> 4 4 18 NaN NaN 78 91
#> 5 5 NaN NaN 64 35 47
#> 6 6 28 NaN 40 66 32
#> 7 7 23 29 77 122 20
#> 8 8 19 NaN 97 89 23
#> 9 9 8 71 97 110 21
#> 10 10 NaN 39 85 NaN 24
#> 11 11 7 NaN NaN NaN 44
#> 12 12 16 NaN 10 44 21
#> 13 13 11 23 27 28 28
#> 14 14 14 NaN NaN 65 9
#> 15 15 18 NaN 7 NaN 13
#> 16 16 14 21 48 22 46
#> 17 17 34 37 35 59 18
#> 18 18 6 20 61 23 13
#> 19 19 30 12 79 31 24
#> 20 20 11 13 63 44 16
#> 21 21 1 NaN 16 21 13
#> 22 22 11 NaN NaN 9 23
#> 23 23 4 NaN NaN NaN 36
#> 24 24 32 NaN 80 45 7
#> 25 25 NaN NaN 108 168 14
#> 26 26 NaN NaN 20 73 30
#> 27 27 NaN NaN 52 NaN NaN
#> 28 28 23 NaN 82 76 14
#> 29 29 45 NaN 50 118 18
#> 30 30 115 NaN 64 84 20
#> 31 31 37 NaN 59 85 NaN
cast(aqm, month ~ variable, range)
#> month ozone_X1 ozone_X2 solar.r_X1 solar.r_X2 wind_X1 wind_X2 temp_X1 temp_X2
#> 1 5 1 115 8 334 5.7 20.1 56 81
#> 2 6 12 71 31 332 1.7 20.7 65 93
#> 3 7 7 135 7 314 4.1 14.9 73 92
#> 4 8 9 168 24 273 2.3 15.5 72 97
#> 5 9 7 96 14 259 2.8 16.6 63 93
cast(aqm, month ~ variable + result_variable, range)
#> month ozone_X1 ozone_X2 solar.r_X1 solar.r_X2 wind_X1 wind_X2 temp_X1 temp_X2
#> 1 5 1 115 8 334 5.7 20.1 56 81
#> 2 6 12 71 31 332 1.7 20.7 65 93
#> 3 7 7 135 7 314 4.1 14.9 73 92
#> 4 8 9 168 24 273 2.3 15.5 72 97
#> 5 9 7 96 14 259 2.8 16.6 63 93
cast(aqm, variable ~ month ~ result_variable,range)
#> , , result_variable = X1
#>
#> month
#> variable 5 6 7 8 9
#> ozone 1.0 12.0 7.0 9.0 7.0
#> solar.r 8.0 31.0 7.0 24.0 14.0
#> wind 5.7 1.7 4.1 2.3 2.8
#> temp 56.0 65.0 73.0 72.0 63.0
#>
#> , , result_variable = X2
#>
#> month
#> variable 5 6 7 8 9
#> ozone 115.0 71.0 135.0 168.0 96.0
#> solar.r 334.0 332.0 314.0 273.0 259.0
#> wind 20.1 20.7 14.9 15.5 16.6
#> temp 81.0 93.0 92.0 97.0 93.0
#>
#Chick weight example
names(ChickWeight) <- tolower(names(ChickWeight))
chick_m <- melt(ChickWeight, id=2:4, na.rm=TRUE)
cast(chick_m, time ~ variable, mean) # average effect of time
#> time weight
#> 1 0 41.06000
#> 2 2 49.22000
#> 3 4 59.95918
#> 4 6 74.30612
#> 5 8 91.24490
#> 6 10 107.83673
#> 7 12 129.24490
#> 8 14 143.81250
#> 9 16 168.08511
#> 10 18 190.19149
#> 11 20 209.71739
#> 12 21 218.68889
cast(chick_m, diet ~ variable, mean) # average effect of diet
#> diet weight
#> 1 1 102.6455
#> 2 2 122.6167
#> 3 3 142.9500
#> 4 4 135.2627
cast(chick_m, diet ~ time ~ variable, mean) # average effect of diet & time
#> , , variable = weight
#>
#> time
#> diet 0 2 4 6 8 10 12 14
#> 1 41.4 47.25 56.47368 66.78947 79.68421 93.05263 108.5263 123.3889
#> 2 40.7 49.40 59.80000 75.40000 91.70000 108.50000 131.3000 141.9000
#> 3 40.8 50.40 62.20000 77.90000 98.40000 117.10000 144.4000 164.5000
#> 4 41.0 51.80 64.50000 83.90000 105.60000 126.00000 151.4000 161.8000
#> time
#> diet 16 18 20 21
#> 1 144.6471 158.9412 170.4118 177.7500
#> 2 164.7000 187.7000 205.6000 214.7000
#> 3 197.4000 233.1000 258.9000 270.3000
#> 4 182.0000 202.9000 233.8889 238.5556
#>
# How many chicks at each time? - checking for balance
cast(chick_m, time ~ diet, length)
#> time 1 2 3 4
#> 1 0 20 10 10 10
#> 2 2 20 10 10 10
#> 3 4 19 10 10 10
#> 4 6 19 10 10 10
#> 5 8 19 10 10 10
#> 6 10 19 10 10 10
#> 7 12 19 10 10 10
#> 8 14 18 10 10 10
#> 9 16 17 10 10 10
#> 10 18 17 10 10 10
#> 11 20 17 10 10 9
#> 12 21 16 10 10 9
cast(chick_m, chick ~ time, mean)
#> chick 0 2 4 6 8 10 12 14 16 18 20 21
#> 1 18 39 35 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
#> 2 16 41 45 49 51 57 51 54 NaN NaN NaN NaN NaN
#> 3 15 41 49 56 64 68 68 67 68 NaN NaN NaN NaN
#> 4 13 41 48 53 60 65 67 71 70 71 81 91 96
#> 5 9 42 51 59 68 85 96 90 92 93 100 100 98
#> 6 20 41 47 54 58 65 73 77 89 98 107 115 117
#> 7 10 41 44 52 63 74 81 89 96 101 112 120 124
#> 8 8 42 50 61 71 84 93 110 116 126 134 125 NaN
#> 9 17 42 51 61 72 83 89 98 103 113 123 133 142
#> 10 19 43 48 55 62 65 71 82 88 106 120 144 157
#> 11 4 42 49 56 67 74 87 102 108 136 154 160 157
#> 12 6 41 49 59 74 97 124 141 148 155 160 160 157
#> 13 11 43 51 63 84 112 139 168 177 182 184 181 175
#> 14 3 43 39 55 67 84 99 115 138 163 187 198 202
#> 15 1 42 51 59 64 76 93 106 125 149 171 199 205
#> 16 12 41 49 56 62 72 88 119 135 162 185 195 205
#> 17 2 40 49 58 72 84 103 122 138 162 187 209 215
#> 18 5 41 42 48 60 79 106 141 164 197 199 220 223
#> 19 14 41 49 62 79 101 128 164 192 227 248 259 266
#> 20 7 41 49 57 71 89 112 146 174 218 250 288 305
#> 21 24 42 52 58 74 66 68 70 71 72 72 76 74
#> 22 30 42 48 59 72 85 98 115 122 143 151 157 150
#> 23 22 41 55 64 77 90 95 108 111 131 148 164 167
#> 24 23 43 52 61 73 90 103 127 135 145 163 170 175
#> 25 27 39 46 58 73 87 100 115 123 144 163 185 192
#> 26 28 39 46 58 73 92 114 145 156 184 207 212 233
#> 27 26 42 48 57 74 93 114 136 147 169 205 236 251
#> 28 25 40 49 62 78 102 124 146 164 197 231 259 265
#> 29 29 39 48 59 74 87 106 134 150 187 230 279 309
#> 30 21 40 50 62 86 125 163 217 240 275 307 318 331
#> 31 33 39 50 63 77 96 111 137 144 151 146 156 147
#> 32 37 41 48 56 68 80 83 103 112 135 157 169 178
#> 33 36 39 48 61 76 98 116 145 166 198 227 225 220
#> 34 31 42 53 62 73 85 102 123 138 170 204 235 256
#> 35 39 42 50 61 78 89 109 130 146 170 214 250 272
#> 36 38 41 49 61 74 98 109 128 154 192 232 280 290
#> 37 32 41 49 65 82 107 129 159 179 221 263 291 305
#> 38 40 41 55 66 79 101 120 154 182 215 262 295 321
#> 39 34 41 49 63 85 107 134 164 186 235 294 327 341
#> 40 35 41 53 64 87 123 158 201 238 287 332 361 373
#> 41 44 42 51 65 86 103 118 127 138 145 146 NaN NaN
#> 42 45 41 50 61 78 98 117 135 141 147 174 197 196
#> 43 43 42 55 69 96 131 157 184 188 197 198 199 200
#> 44 41 42 51 66 85 103 124 155 153 175 184 199 204
#> 45 47 41 53 66 79 100 123 148 157 168 185 210 205
#> 46 49 40 53 64 85 108 128 152 166 184 203 233 237
#> 47 46 40 52 62 82 101 120 144 156 173 210 231 238
#> 48 50 41 54 67 84 105 122 155 175 205 234 264 264
#> 49 42 42 49 63 84 103 126 160 174 204 234 269 281
#> 50 48 39 50 62 80 104 125 154 170 222 261 303 322
cast(chick_m, chick ~ time, mean, subset=time < 10 & chick < 20)
#> chick 0 2 4 6 8
#> 1 18 39 35 NaN NaN NaN
#> 2 16 41 45 49 51 57
#> 3 15 41 49 56 64 68
#> 4 13 41 48 53 60 65
#> 5 9 42 51 59 68 85
cast(chick_m, diet + chick ~ time)
#> diet chick 0 2 4 6 8 10 12 14 16 18 20 21
#> 1 1 18 39 35 NA NA NA NA NA NA NA NA NA NA
#> 2 1 16 41 45 49 51 57 51 54 NA NA NA NA NA
#> 3 1 15 41 49 56 64 68 68 67 68 NA NA NA NA
#> 4 1 13 41 48 53 60 65 67 71 70 71 81 91 96
#> 5 1 9 42 51 59 68 85 96 90 92 93 100 100 98
#> 6 1 20 41 47 54 58 65 73 77 89 98 107 115 117
#> 7 1 10 41 44 52 63 74 81 89 96 101 112 120 124
#> 8 1 8 42 50 61 71 84 93 110 116 126 134 125 NA
#> 9 1 17 42 51 61 72 83 89 98 103 113 123 133 142
#> 10 1 19 43 48 55 62 65 71 82 88 106 120 144 157
#> 11 1 4 42 49 56 67 74 87 102 108 136 154 160 157
#> 12 1 6 41 49 59 74 97 124 141 148 155 160 160 157
#> 13 1 11 43 51 63 84 112 139 168 177 182 184 181 175
#> 14 1 3 43 39 55 67 84 99 115 138 163 187 198 202
#> 15 1 1 42 51 59 64 76 93 106 125 149 171 199 205
#> 16 1 12 41 49 56 62 72 88 119 135 162 185 195 205
#> 17 1 2 40 49 58 72 84 103 122 138 162 187 209 215
#> 18 1 5 41 42 48 60 79 106 141 164 197 199 220 223
#> 19 1 14 41 49 62 79 101 128 164 192 227 248 259 266
#> 20 1 7 41 49 57 71 89 112 146 174 218 250 288 305
#> 21 2 24 42 52 58 74 66 68 70 71 72 72 76 74
#> 22 2 30 42 48 59 72 85 98 115 122 143 151 157 150
#> 23 2 22 41 55 64 77 90 95 108 111 131 148 164 167
#> 24 2 23 43 52 61 73 90 103 127 135 145 163 170 175
#> 25 2 27 39 46 58 73 87 100 115 123 144 163 185 192
#> 26 2 28 39 46 58 73 92 114 145 156 184 207 212 233
#> 27 2 26 42 48 57 74 93 114 136 147 169 205 236 251
#> 28 2 25 40 49 62 78 102 124 146 164 197 231 259 265
#> 29 2 29 39 48 59 74 87 106 134 150 187 230 279 309
#> 30 2 21 40 50 62 86 125 163 217 240 275 307 318 331
#> 31 3 33 39 50 63 77 96 111 137 144 151 146 156 147
#> 32 3 37 41 48 56 68 80 83 103 112 135 157 169 178
#> 33 3 36 39 48 61 76 98 116 145 166 198 227 225 220
#> 34 3 31 42 53 62 73 85 102 123 138 170 204 235 256
#> 35 3 39 42 50 61 78 89 109 130 146 170 214 250 272
#> 36 3 38 41 49 61 74 98 109 128 154 192 232 280 290
#> 37 3 32 41 49 65 82 107 129 159 179 221 263 291 305
#> 38 3 40 41 55 66 79 101 120 154 182 215 262 295 321
#> 39 3 34 41 49 63 85 107 134 164 186 235 294 327 341
#> 40 3 35 41 53 64 87 123 158 201 238 287 332 361 373
#> 41 4 44 42 51 65 86 103 118 127 138 145 146 NA NA
#> 42 4 45 41 50 61 78 98 117 135 141 147 174 197 196
#> 43 4 43 42 55 69 96 131 157 184 188 197 198 199 200
#> 44 4 41 42 51 66 85 103 124 155 153 175 184 199 204
#> 45 4 47 41 53 66 79 100 123 148 157 168 185 210 205
#> 46 4 49 40 53 64 85 108 128 152 166 184 203 233 237
#> 47 4 46 40 52 62 82 101 120 144 156 173 210 231 238
#> 48 4 50 41 54 67 84 105 122 155 175 205 234 264 264
#> 49 4 42 42 49 63 84 103 126 160 174 204 234 269 281
#> 50 4 48 39 50 62 80 104 125 154 170 222 261 303 322
cast(chick_m, chick ~ time ~ diet)
#> , , diet = 1
#>
#> time
#> chick 0 2 4 6 8 10 12 14 16 18 20 21
#> 18 39 35 NA NA NA NA NA NA NA NA NA NA
#> 16 41 45 49 51 57 51 54 NA NA NA NA NA
#> 15 41 49 56 64 68 68 67 68 NA NA NA NA
#> 13 41 48 53 60 65 67 71 70 71 81 91 96
#> 9 42 51 59 68 85 96 90 92 93 100 100 98
#> 20 41 47 54 58 65 73 77 89 98 107 115 117
#> 10 41 44 52 63 74 81 89 96 101 112 120 124
#> 8 42 50 61 71 84 93 110 116 126 134 125 NA
#> 17 42 51 61 72 83 89 98 103 113 123 133 142
#> 19 43 48 55 62 65 71 82 88 106 120 144 157
#> 4 42 49 56 67 74 87 102 108 136 154 160 157
#> 6 41 49 59 74 97 124 141 148 155 160 160 157
#> 11 43 51 63 84 112 139 168 177 182 184 181 175
#> 3 43 39 55 67 84 99 115 138 163 187 198 202
#> 1 42 51 59 64 76 93 106 125 149 171 199 205
#> 12 41 49 56 62 72 88 119 135 162 185 195 205
#> 2 40 49 58 72 84 103 122 138 162 187 209 215
#> 5 41 42 48 60 79 106 141 164 197 199 220 223
#> 14 41 49 62 79 101 128 164 192 227 248 259 266
#> 7 41 49 57 71 89 112 146 174 218 250 288 305
#> 24 NA NA NA NA NA NA NA NA NA NA NA NA
#> 30 NA NA NA NA NA NA NA NA NA NA NA NA
#> 22 NA NA NA NA NA NA NA NA NA NA NA NA
#> 23 NA NA NA NA NA NA NA NA NA NA NA NA
#> 27 NA NA NA NA NA NA NA NA NA NA NA NA
#> 28 NA NA NA NA NA NA NA NA NA NA NA NA
#> 26 NA NA NA NA NA NA NA NA NA NA NA NA
#> 25 NA NA NA NA NA NA NA NA NA NA NA NA
#> 29 NA NA NA NA NA NA NA NA NA NA NA NA
#> 21 NA NA NA NA NA NA NA NA NA NA NA NA
#> 33 NA NA NA NA NA NA NA NA NA NA NA NA
#> 37 NA NA NA NA NA NA NA NA NA NA NA NA
#> 36 NA NA NA NA NA NA NA NA NA NA NA NA
#> 31 NA NA NA NA NA NA NA NA NA NA NA NA
#> 39 NA NA NA NA NA NA NA NA NA NA NA NA
#> 38 NA NA NA NA NA NA NA NA NA NA NA NA
#> 32 NA NA NA NA NA NA NA NA NA NA NA NA
#> 40 NA NA NA NA NA NA NA NA NA NA NA NA
#> 34 NA NA NA NA NA NA NA NA NA NA NA NA
#> 35 NA NA NA NA NA NA NA NA NA NA NA NA
#> 44 NA NA NA NA NA NA NA NA NA NA NA NA
#> 45 NA NA NA NA NA NA NA NA NA NA NA NA
#> 43 NA NA NA NA NA NA NA NA NA NA NA NA
#> 41 NA NA NA NA NA NA NA NA NA NA NA NA
#> 47 NA NA NA NA NA NA NA NA NA NA NA NA
#> 49 NA NA NA NA NA NA NA NA NA NA NA NA
#> 46 NA NA NA NA NA NA NA NA NA NA NA NA
#> 50 NA NA NA NA NA NA NA NA NA NA NA NA
#> 42 NA NA NA NA NA NA NA NA NA NA NA NA
#> 48 NA NA NA NA NA NA NA NA NA NA NA NA
#>
#> , , diet = 2
#>
#> time
#> chick 0 2 4 6 8 10 12 14 16 18 20 21
#> 18 NA NA NA NA NA NA NA NA NA NA NA NA
#> 16 NA NA NA NA NA NA NA NA NA NA NA NA
#> 15 NA NA NA NA NA NA NA NA NA NA NA NA
#> 13 NA NA NA NA NA NA NA NA NA NA NA NA
#> 9 NA NA NA NA NA NA NA NA NA NA NA NA
#> 20 NA NA NA NA NA NA NA NA NA NA NA NA
#> 10 NA NA NA NA NA NA NA NA NA NA NA NA
#> 8 NA NA NA NA NA NA NA NA NA NA NA NA
#> 17 NA NA NA NA NA NA NA NA NA NA NA NA
#> 19 NA NA NA NA NA NA NA NA NA NA NA NA
#> 4 NA NA NA NA NA NA NA NA NA NA NA NA
#> 6 NA NA NA NA NA NA NA NA NA NA NA NA
#> 11 NA NA NA NA NA NA NA NA NA NA NA NA
#> 3 NA NA NA NA NA NA NA NA NA NA NA NA
#> 1 NA NA NA NA NA NA NA NA NA NA NA NA
#> 12 NA NA NA NA NA NA NA NA NA NA NA NA
#> 2 NA NA NA NA NA NA NA NA NA NA NA NA
#> 5 NA NA NA NA NA NA NA NA NA NA NA NA
#> 14 NA NA NA NA NA NA NA NA NA NA NA NA
#> 7 NA NA NA NA NA NA NA NA NA NA NA NA
#> 24 42 52 58 74 66 68 70 71 72 72 76 74
#> 30 42 48 59 72 85 98 115 122 143 151 157 150
#> 22 41 55 64 77 90 95 108 111 131 148 164 167
#> 23 43 52 61 73 90 103 127 135 145 163 170 175
#> 27 39 46 58 73 87 100 115 123 144 163 185 192
#> 28 39 46 58 73 92 114 145 156 184 207 212 233
#> 26 42 48 57 74 93 114 136 147 169 205 236 251
#> 25 40 49 62 78 102 124 146 164 197 231 259 265
#> 29 39 48 59 74 87 106 134 150 187 230 279 309
#> 21 40 50 62 86 125 163 217 240 275 307 318 331
#> 33 NA NA NA NA NA NA NA NA NA NA NA NA
#> 37 NA NA NA NA NA NA NA NA NA NA NA NA
#> 36 NA NA NA NA NA NA NA NA NA NA NA NA
#> 31 NA NA NA NA NA NA NA NA NA NA NA NA
#> 39 NA NA NA NA NA NA NA NA NA NA NA NA
#> 38 NA NA NA NA NA NA NA NA NA NA NA NA
#> 32 NA NA NA NA NA NA NA NA NA NA NA NA
#> 40 NA NA NA NA NA NA NA NA NA NA NA NA
#> 34 NA NA NA NA NA NA NA NA NA NA NA NA
#> 35 NA NA NA NA NA NA NA NA NA NA NA NA
#> 44 NA NA NA NA NA NA NA NA NA NA NA NA
#> 45 NA NA NA NA NA NA NA NA NA NA NA NA
#> 43 NA NA NA NA NA NA NA NA NA NA NA NA
#> 41 NA NA NA NA NA NA NA NA NA NA NA NA
#> 47 NA NA NA NA NA NA NA NA NA NA NA NA
#> 49 NA NA NA NA NA NA NA NA NA NA NA NA
#> 46 NA NA NA NA NA NA NA NA NA NA NA NA
#> 50 NA NA NA NA NA NA NA NA NA NA NA NA
#> 42 NA NA NA NA NA NA NA NA NA NA NA NA
#> 48 NA NA NA NA NA NA NA NA NA NA NA NA
#>
#> , , diet = 3
#>
#> time
#> chick 0 2 4 6 8 10 12 14 16 18 20 21
#> 18 NA NA NA NA NA NA NA NA NA NA NA NA
#> 16 NA NA NA NA NA NA NA NA NA NA NA NA
#> 15 NA NA NA NA NA NA NA NA NA NA NA NA
#> 13 NA NA NA NA NA NA NA NA NA NA NA NA
#> 9 NA NA NA NA NA NA NA NA NA NA NA NA
#> 20 NA NA NA NA NA NA NA NA NA NA NA NA
#> 10 NA NA NA NA NA NA NA NA NA NA NA NA
#> 8 NA NA NA NA NA NA NA NA NA NA NA NA
#> 17 NA NA NA NA NA NA NA NA NA NA NA NA
#> 19 NA NA NA NA NA NA NA NA NA NA NA NA
#> 4 NA NA NA NA NA NA NA NA NA NA NA NA
#> 6 NA NA NA NA NA NA NA NA NA NA NA NA
#> 11 NA NA NA NA NA NA NA NA NA NA NA NA
#> 3 NA NA NA NA NA NA NA NA NA NA NA NA
#> 1 NA NA NA NA NA NA NA NA NA NA NA NA
#> 12 NA NA NA NA NA NA NA NA NA NA NA NA
#> 2 NA NA NA NA NA NA NA NA NA NA NA NA
#> 5 NA NA NA NA NA NA NA NA NA NA NA NA
#> 14 NA NA NA NA NA NA NA NA NA NA NA NA
#> 7 NA NA NA NA NA NA NA NA NA NA NA NA
#> 24 NA NA NA NA NA NA NA NA NA NA NA NA
#> 30 NA NA NA NA NA NA NA NA NA NA NA NA
#> 22 NA NA NA NA NA NA NA NA NA NA NA NA
#> 23 NA NA NA NA NA NA NA NA NA NA NA NA
#> 27 NA NA NA NA NA NA NA NA NA NA NA NA
#> 28 NA NA NA NA NA NA NA NA NA NA NA NA
#> 26 NA NA NA NA NA NA NA NA NA NA NA NA
#> 25 NA NA NA NA NA NA NA NA NA NA NA NA
#> 29 NA NA NA NA NA NA NA NA NA NA NA NA
#> 21 NA NA NA NA NA NA NA NA NA NA NA NA
#> 33 39 50 63 77 96 111 137 144 151 146 156 147
#> 37 41 48 56 68 80 83 103 112 135 157 169 178
#> 36 39 48 61 76 98 116 145 166 198 227 225 220
#> 31 42 53 62 73 85 102 123 138 170 204 235 256
#> 39 42 50 61 78 89 109 130 146 170 214 250 272
#> 38 41 49 61 74 98 109 128 154 192 232 280 290
#> 32 41 49 65 82 107 129 159 179 221 263 291 305
#> 40 41 55 66 79 101 120 154 182 215 262 295 321
#> 34 41 49 63 85 107 134 164 186 235 294 327 341
#> 35 41 53 64 87 123 158 201 238 287 332 361 373
#> 44 NA NA NA NA NA NA NA NA NA NA NA NA
#> 45 NA NA NA NA NA NA NA NA NA NA NA NA
#> 43 NA NA NA NA NA NA NA NA NA NA NA NA
#> 41 NA NA NA NA NA NA NA NA NA NA NA NA
#> 47 NA NA NA NA NA NA NA NA NA NA NA NA
#> 49 NA NA NA NA NA NA NA NA NA NA NA NA
#> 46 NA NA NA NA NA NA NA NA NA NA NA NA
#> 50 NA NA NA NA NA NA NA NA NA NA NA NA
#> 42 NA NA NA NA NA NA NA NA NA NA NA NA
#> 48 NA NA NA NA NA NA NA NA NA NA NA NA
#>
#> , , diet = 4
#>
#> time
#> chick 0 2 4 6 8 10 12 14 16 18 20 21
#> 18 NA NA NA NA NA NA NA NA NA NA NA NA
#> 16 NA NA NA NA NA NA NA NA NA NA NA NA
#> 15 NA NA NA NA NA NA NA NA NA NA NA NA
#> 13 NA NA NA NA NA NA NA NA NA NA NA NA
#> 9 NA NA NA NA NA NA NA NA NA NA NA NA
#> 20 NA NA NA NA NA NA NA NA NA NA NA NA
#> 10 NA NA NA NA NA NA NA NA NA NA NA NA
#> 8 NA NA NA NA NA NA NA NA NA NA NA NA
#> 17 NA NA NA NA NA NA NA NA NA NA NA NA
#> 19 NA NA NA NA NA NA NA NA NA NA NA NA
#> 4 NA NA NA NA NA NA NA NA NA NA NA NA
#> 6 NA NA NA NA NA NA NA NA NA NA NA NA
#> 11 NA NA NA NA NA NA NA NA NA NA NA NA
#> 3 NA NA NA NA NA NA NA NA NA NA NA NA
#> 1 NA NA NA NA NA NA NA NA NA NA NA NA
#> 12 NA NA NA NA NA NA NA NA NA NA NA NA
#> 2 NA NA NA NA NA NA NA NA NA NA NA NA
#> 5 NA NA NA NA NA NA NA NA NA NA NA NA
#> 14 NA NA NA NA NA NA NA NA NA NA NA NA
#> 7 NA NA NA NA NA NA NA NA NA NA NA NA
#> 24 NA NA NA NA NA NA NA NA NA NA NA NA
#> 30 NA NA NA NA NA NA NA NA NA NA NA NA
#> 22 NA NA NA NA NA NA NA NA NA NA NA NA
#> 23 NA NA NA NA NA NA NA NA NA NA NA NA
#> 27 NA NA NA NA NA NA NA NA NA NA NA NA
#> 28 NA NA NA NA NA NA NA NA NA NA NA NA
#> 26 NA NA NA NA NA NA NA NA NA NA NA NA
#> 25 NA NA NA NA NA NA NA NA NA NA NA NA
#> 29 NA NA NA NA NA NA NA NA NA NA NA NA
#> 21 NA NA NA NA NA NA NA NA NA NA NA NA
#> 33 NA NA NA NA NA NA NA NA NA NA NA NA
#> 37 NA NA NA NA NA NA NA NA NA NA NA NA
#> 36 NA NA NA NA NA NA NA NA NA NA NA NA
#> 31 NA NA NA NA NA NA NA NA NA NA NA NA
#> 39 NA NA NA NA NA NA NA NA NA NA NA NA
#> 38 NA NA NA NA NA NA NA NA NA NA NA NA
#> 32 NA NA NA NA NA NA NA NA NA NA NA NA
#> 40 NA NA NA NA NA NA NA NA NA NA NA NA
#> 34 NA NA NA NA NA NA NA NA NA NA NA NA
#> 35 NA NA NA NA NA NA NA NA NA NA NA NA
#> 44 42 51 65 86 103 118 127 138 145 146 NA NA
#> 45 41 50 61 78 98 117 135 141 147 174 197 196
#> 43 42 55 69 96 131 157 184 188 197 198 199 200
#> 41 42 51 66 85 103 124 155 153 175 184 199 204
#> 47 41 53 66 79 100 123 148 157 168 185 210 205
#> 49 40 53 64 85 108 128 152 166 184 203 233 237
#> 46 40 52 62 82 101 120 144 156 173 210 231 238
#> 50 41 54 67 84 105 122 155 175 205 234 264 264
#> 42 42 49 63 84 103 126 160 174 204 234 269 281
#> 48 39 50 62 80 104 125 154 170 222 261 303 322
#>
cast(chick_m, diet + chick ~ time, mean, margins="diet")
#> diet chick 0 2 4 6 8 10 12
#> 1 1 18 39.0 35.00 NaN NaN NaN NaN NaN
#> 2 1 16 41.0 45.00 49.00000 51.00000 57.00000 51.00000 54.0000
#> 3 1 15 41.0 49.00 56.00000 64.00000 68.00000 68.00000 67.0000
#> 4 1 13 41.0 48.00 53.00000 60.00000 65.00000 67.00000 71.0000
#> 5 1 9 42.0 51.00 59.00000 68.00000 85.00000 96.00000 90.0000
#> 6 1 20 41.0 47.00 54.00000 58.00000 65.00000 73.00000 77.0000
#> 7 1 10 41.0 44.00 52.00000 63.00000 74.00000 81.00000 89.0000
#> 8 1 8 42.0 50.00 61.00000 71.00000 84.00000 93.00000 110.0000
#> 9 1 17 42.0 51.00 61.00000 72.00000 83.00000 89.00000 98.0000
#> 10 1 19 43.0 48.00 55.00000 62.00000 65.00000 71.00000 82.0000
#> 11 1 4 42.0 49.00 56.00000 67.00000 74.00000 87.00000 102.0000
#> 12 1 6 41.0 49.00 59.00000 74.00000 97.00000 124.00000 141.0000
#> 13 1 11 43.0 51.00 63.00000 84.00000 112.00000 139.00000 168.0000
#> 14 1 3 43.0 39.00 55.00000 67.00000 84.00000 99.00000 115.0000
#> 15 1 1 42.0 51.00 59.00000 64.00000 76.00000 93.00000 106.0000
#> 16 1 12 41.0 49.00 56.00000 62.00000 72.00000 88.00000 119.0000
#> 17 1 2 40.0 49.00 58.00000 72.00000 84.00000 103.00000 122.0000
#> 18 1 5 41.0 42.00 48.00000 60.00000 79.00000 106.00000 141.0000
#> 19 1 14 41.0 49.00 62.00000 79.00000 101.00000 128.00000 164.0000
#> 20 1 7 41.0 49.00 57.00000 71.00000 89.00000 112.00000 146.0000
#> 21 1 (all) 41.4 47.25 56.47368 66.78947 79.68421 93.05263 108.5263
#> 22 2 24 42.0 52.00 58.00000 74.00000 66.00000 68.00000 70.0000
#> 23 2 30 42.0 48.00 59.00000 72.00000 85.00000 98.00000 115.0000
#> 24 2 22 41.0 55.00 64.00000 77.00000 90.00000 95.00000 108.0000
#> 25 2 23 43.0 52.00 61.00000 73.00000 90.00000 103.00000 127.0000
#> 26 2 27 39.0 46.00 58.00000 73.00000 87.00000 100.00000 115.0000
#> 27 2 28 39.0 46.00 58.00000 73.00000 92.00000 114.00000 145.0000
#> 28 2 26 42.0 48.00 57.00000 74.00000 93.00000 114.00000 136.0000
#> 29 2 25 40.0 49.00 62.00000 78.00000 102.00000 124.00000 146.0000
#> 30 2 29 39.0 48.00 59.00000 74.00000 87.00000 106.00000 134.0000
#> 31 2 21 40.0 50.00 62.00000 86.00000 125.00000 163.00000 217.0000
#> 32 2 (all) 40.7 49.40 59.80000 75.40000 91.70000 108.50000 131.3000
#> 33 3 33 39.0 50.00 63.00000 77.00000 96.00000 111.00000 137.0000
#> 34 3 37 41.0 48.00 56.00000 68.00000 80.00000 83.00000 103.0000
#> 35 3 36 39.0 48.00 61.00000 76.00000 98.00000 116.00000 145.0000
#> 36 3 31 42.0 53.00 62.00000 73.00000 85.00000 102.00000 123.0000
#> 37 3 39 42.0 50.00 61.00000 78.00000 89.00000 109.00000 130.0000
#> 38 3 38 41.0 49.00 61.00000 74.00000 98.00000 109.00000 128.0000
#> 39 3 32 41.0 49.00 65.00000 82.00000 107.00000 129.00000 159.0000
#> 40 3 40 41.0 55.00 66.00000 79.00000 101.00000 120.00000 154.0000
#> 41 3 34 41.0 49.00 63.00000 85.00000 107.00000 134.00000 164.0000
#> 42 3 35 41.0 53.00 64.00000 87.00000 123.00000 158.00000 201.0000
#> 43 3 (all) 40.8 50.40 62.20000 77.90000 98.40000 117.10000 144.4000
#> 44 4 44 42.0 51.00 65.00000 86.00000 103.00000 118.00000 127.0000
#> 45 4 45 41.0 50.00 61.00000 78.00000 98.00000 117.00000 135.0000
#> 46 4 43 42.0 55.00 69.00000 96.00000 131.00000 157.00000 184.0000
#> 47 4 41 42.0 51.00 66.00000 85.00000 103.00000 124.00000 155.0000
#> 48 4 47 41.0 53.00 66.00000 79.00000 100.00000 123.00000 148.0000
#> 49 4 49 40.0 53.00 64.00000 85.00000 108.00000 128.00000 152.0000
#> 50 4 46 40.0 52.00 62.00000 82.00000 101.00000 120.00000 144.0000
#> 51 4 50 41.0 54.00 67.00000 84.00000 105.00000 122.00000 155.0000
#> 52 4 42 42.0 49.00 63.00000 84.00000 103.00000 126.00000 160.0000
#> 53 4 48 39.0 50.00 62.00000 80.00000 104.00000 125.00000 154.0000
#> 54 4 (all) 41.0 51.80 64.50000 83.90000 105.60000 126.00000 151.4000
#> 14 16 18 20 21
#> 1 NaN NaN NaN NaN NaN
#> 2 NaN NaN NaN NaN NaN
#> 3 68.0000 NaN NaN NaN NaN
#> 4 70.0000 71.0000 81.0000 91.0000 96.0000
#> 5 92.0000 93.0000 100.0000 100.0000 98.0000
#> 6 89.0000 98.0000 107.0000 115.0000 117.0000
#> 7 96.0000 101.0000 112.0000 120.0000 124.0000
#> 8 116.0000 126.0000 134.0000 125.0000 NaN
#> 9 103.0000 113.0000 123.0000 133.0000 142.0000
#> 10 88.0000 106.0000 120.0000 144.0000 157.0000
#> 11 108.0000 136.0000 154.0000 160.0000 157.0000
#> 12 148.0000 155.0000 160.0000 160.0000 157.0000
#> 13 177.0000 182.0000 184.0000 181.0000 175.0000
#> 14 138.0000 163.0000 187.0000 198.0000 202.0000
#> 15 125.0000 149.0000 171.0000 199.0000 205.0000
#> 16 135.0000 162.0000 185.0000 195.0000 205.0000
#> 17 138.0000 162.0000 187.0000 209.0000 215.0000
#> 18 164.0000 197.0000 199.0000 220.0000 223.0000
#> 19 192.0000 227.0000 248.0000 259.0000 266.0000
#> 20 174.0000 218.0000 250.0000 288.0000 305.0000
#> 21 123.3889 144.6471 158.9412 170.4118 177.7500
#> 22 71.0000 72.0000 72.0000 76.0000 74.0000
#> 23 122.0000 143.0000 151.0000 157.0000 150.0000
#> 24 111.0000 131.0000 148.0000 164.0000 167.0000
#> 25 135.0000 145.0000 163.0000 170.0000 175.0000
#> 26 123.0000 144.0000 163.0000 185.0000 192.0000
#> 27 156.0000 184.0000 207.0000 212.0000 233.0000
#> 28 147.0000 169.0000 205.0000 236.0000 251.0000
#> 29 164.0000 197.0000 231.0000 259.0000 265.0000
#> 30 150.0000 187.0000 230.0000 279.0000 309.0000
#> 31 240.0000 275.0000 307.0000 318.0000 331.0000
#> 32 141.9000 164.7000 187.7000 205.6000 214.7000
#> 33 144.0000 151.0000 146.0000 156.0000 147.0000
#> 34 112.0000 135.0000 157.0000 169.0000 178.0000
#> 35 166.0000 198.0000 227.0000 225.0000 220.0000
#> 36 138.0000 170.0000 204.0000 235.0000 256.0000
#> 37 146.0000 170.0000 214.0000 250.0000 272.0000
#> 38 154.0000 192.0000 232.0000 280.0000 290.0000
#> 39 179.0000 221.0000 263.0000 291.0000 305.0000
#> 40 182.0000 215.0000 262.0000 295.0000 321.0000
#> 41 186.0000 235.0000 294.0000 327.0000 341.0000
#> 42 238.0000 287.0000 332.0000 361.0000 373.0000
#> 43 164.5000 197.4000 233.1000 258.9000 270.3000
#> 44 138.0000 145.0000 146.0000 NaN NaN
#> 45 141.0000 147.0000 174.0000 197.0000 196.0000
#> 46 188.0000 197.0000 198.0000 199.0000 200.0000
#> 47 153.0000 175.0000 184.0000 199.0000 204.0000
#> 48 157.0000 168.0000 185.0000 210.0000 205.0000
#> 49 166.0000 184.0000 203.0000 233.0000 237.0000
#> 50 156.0000 173.0000 210.0000 231.0000 238.0000
#> 51 175.0000 205.0000 234.0000 264.0000 264.0000
#> 52 174.0000 204.0000 234.0000 269.0000 281.0000
#> 53 170.0000 222.0000 261.0000 303.0000 322.0000
#> 54 161.8000 182.0000 202.9000 233.8889 238.5556
#Tips example
cast(melt(tips), sex ~ smoker, mean, subset=variable=="total_bill")
#> Using sex, smoker, day, time as id variables
#> sex No Yes
#> 1 Female 18.10519 17.97788
#> 2 Male 19.79124 22.28450
cast(melt(tips), sex ~ smoker | variable, mean)
#> Using sex, smoker, day, time as id variables
#> $total_bill
#> sex No Yes
#> 1 Female 18.10519 17.97788
#> 2 Male 19.79124 22.28450
#>
#> $tip
#> sex No Yes
#> 1 Female 2.773519 2.931515
#> 2 Male 3.113402 3.051167
#>
#> $size
#> sex No Yes
#> 1 Female 2.592593 2.242424
#> 2 Male 2.711340 2.500000
#>
ff_d <- melt(french_fries, id=1:4, na.rm=TRUE)
cast(ff_d, subject ~ time, length)
#> subject 1 2 3 4 5 6 7 8 9 10
#> 1 3 30 30 30 30 30 30 30 30 30 0
#> 2 10 30 30 30 30 30 30 30 30 30 30
#> 3 15 30 30 30 30 25 30 30 30 30 30
#> 4 16 30 30 30 30 30 30 30 29 30 30
#> 5 19 30 30 30 30 30 30 30 30 30 30
#> 6 31 30 30 30 30 30 30 30 30 0 30
#> 7 51 30 30 30 30 30 30 30 30 30 30
#> 8 52 30 30 30 30 30 30 30 30 30 30
#> 9 63 30 30 30 30 30 30 30 30 30 30
#> 10 78 30 30 30 30 30 30 30 30 30 30
#> 11 79 30 30 30 30 30 30 29 28 30 0
#> 12 86 30 30 30 30 30 30 30 30 0 30
cast(ff_d, subject ~ time, length, fill=0)
#> subject 1 2 3 4 5 6 7 8 9 10
#> 1 3 30 30 30 30 30 30 30 30 30 0
#> 2 10 30 30 30 30 30 30 30 30 30 30
#> 3 15 30 30 30 30 25 30 30 30 30 30
#> 4 16 30 30 30 30 30 30 30 29 30 30
#> 5 19 30 30 30 30 30 30 30 30 30 30
#> 6 31 30 30 30 30 30 30 30 30 0 30
#> 7 51 30 30 30 30 30 30 30 30 30 30
#> 8 52 30 30 30 30 30 30 30 30 30 30
#> 9 63 30 30 30 30 30 30 30 30 30 30
#> 10 78 30 30 30 30 30 30 30 30 30 30
#> 11 79 30 30 30 30 30 30 29 28 30 0
#> 12 86 30 30 30 30 30 30 30 30 0 30
cast(ff_d, subject ~ time, function(x) 30 - length(x))
#> subject 1 2 3 4 5 6 7 8 9 10
#> 1 3 0 0 0 0 0 0 0 0 0 30
#> 2 10 0 0 0 0 0 0 0 0 0 0
#> 3 15 0 0 0 0 5 0 0 0 0 0
#> 4 16 0 0 0 0 0 0 0 1 0 0
#> 5 19 0 0 0 0 0 0 0 0 0 0
#> 6 31 0 0 0 0 0 0 0 0 30 0
#> 7 51 0 0 0 0 0 0 0 0 0 0
#> 8 52 0 0 0 0 0 0 0 0 0 0
#> 9 63 0 0 0 0 0 0 0 0 0 0
#> 10 78 0 0 0 0 0 0 0 0 0 0
#> 11 79 0 0 0 0 0 0 1 2 0 30
#> 12 86 0 0 0 0 0 0 0 0 30 0
cast(ff_d, subject ~ time, function(x) 30 - length(x), fill=30)
#> subject 1 2 3 4 5 6 7 8 9 10
#> 1 3 0 0 0 0 0 0 0 0 0 30
#> 2 10 0 0 0 0 0 0 0 0 0 0
#> 3 15 0 0 0 0 5 0 0 0 0 0
#> 4 16 0 0 0 0 0 0 0 1 0 0
#> 5 19 0 0 0 0 0 0 0 0 0 0
#> 6 31 0 0 0 0 0 0 0 0 30 0
#> 7 51 0 0 0 0 0 0 0 0 0 0
#> 8 52 0 0 0 0 0 0 0 0 0 0
#> 9 63 0 0 0 0 0 0 0 0 0 0
#> 10 78 0 0 0 0 0 0 0 0 0 0
#> 11 79 0 0 0 0 0 0 1 2 0 30
#> 12 86 0 0 0 0 0 0 0 0 30 0
cast(ff_d, variable ~ ., c(min, max))
#> variable min max
#> 1 potato 0 14.9
#> 2 buttery 0 11.2
#> 3 grassy 0 11.1
#> 4 rancid 0 14.9
#> 5 painty 0 13.1
cast(ff_d, variable ~ ., function(x) quantile(x,c(0.25,0.5)))
#> variable X25. X50.
#> 1 potato 4.0 7.2
#> 2 buttery 0.0 0.7
#> 3 grassy 0.0 0.0
#> 4 rancid 0.4 2.7
#> 5 painty 0.0 0.6
cast(ff_d, treatment ~ variable, mean, margins=c("grand_col", "grand_row"))
#> treatment potato buttery grassy rancid painty (all)
#> 1 1 6.887931 1.780087 0.6491379 4.065517 2.583621 3.194478
#> 2 2 7.001724 1.973913 0.6629310 3.624569 2.455844 3.146413
#> 3 3 6.967965 1.717749 0.6805195 3.866667 2.525541 3.151688
#> 4 (all) 6.952518 1.823699 0.6641727 3.852230 2.521758 3.164218
cast(ff_d, treatment + subject ~ variable, mean, margins="treatment")
#> treatment subject potato buttery grassy rancid painty
#> 1 1 3 6.216667 0.3722222 0.18888889 2.1055556 3.11111111
#> 2 1 10 9.955000 6.7500000 0.58500000 4.0200000 1.37500000
#> 3 1 15 3.360000 0.7200000 0.42000000 3.9650000 3.26000000
#> 4 1 16 6.495000 3.2600000 0.75500000 4.1200000 1.23000000
#> 5 1 19 9.385000 3.0550000 2.02000000 5.3600000 2.77500000
#> 6 1 31 8.844444 0.4444444 0.08888889 5.9444444 3.21111111
#> 7 1 51 10.675000 2.6400000 1.05000000 5.1500000 1.95500000
#> 8 1 52 5.060000 0.8050000 0.87500000 4.2850000 2.64500000
#> 9 1 63 6.775000 0.0250000 0.00000000 6.0550000 3.85500000
#> 10 1 78 3.620000 0.7350000 0.54000000 1.5050000 3.49000000
#> 11 1 79 8.061111 0.2823529 0.34444444 0.5666667 0.00000000
#> 12 1 86 4.183333 1.7722222 0.80555556 5.4944444 4.10555556
#> 13 1 (all) 6.887931 1.7800866 0.64913793 4.0655172 2.58362069
#> 14 2 3 6.738889 0.5888889 0.10555556 3.1388889 2.47777778
#> 15 2 10 9.995000 6.9800000 0.47500000 2.1500000 0.82000000
#> 16 2 15 4.405000 1.3150000 0.34000000 2.2850000 2.06000000
#> 17 2 16 6.450000 3.3736842 1.05500000 3.4000000 0.45500000
#> 18 2 19 8.640000 2.4500000 1.13500000 5.4050000 4.15500000
#> 19 2 31 8.033333 0.6166667 0.15555556 6.0500000 5.06111111
#> 20 2 51 9.985000 3.7950000 1.57000000 4.6700000 2.25500000
#> 21 2 52 5.515000 1.0250000 1.18000000 4.2250000 2.19500000
#> 22 2 63 8.415000 0.1050000 0.01000000 5.0900000 4.35500000
#> 23 2 78 3.780000 0.2950000 0.75500000 1.5500000 2.72500000
#> 24 2 79 7.938889 0.6941176 0.25555556 1.0333333 0.00000000
#> 25 2 86 3.994444 2.0611111 0.78333333 4.5222222 2.84444444
#> 26 2 (all) 7.001724 1.9739130 0.66293103 3.6245690 2.45584416
#> 27 3 3 5.294444 0.7666667 0.09444444 2.8555556 2.86666667
#> 28 3 10 10.030000 6.4500000 0.14500000 3.1100000 0.69000000
#> 29 3 15 3.963158 0.9894737 0.44210526 2.5473684 2.36842105
#> 30 3 16 6.860000 2.7000000 1.12500000 3.2000000 0.55500000
#> 31 3 19 8.740000 1.7250000 2.07000000 7.2400000 3.90500000
#> 32 3 31 9.027778 0.6500000 0.17222222 6.5777778 5.12777778
#> 33 3 51 10.220000 3.1300000 1.35000000 4.9150000 2.54500000
#> 34 3 52 5.475000 0.8650000 0.76500000 3.1600000 2.66000000
#> 35 3 63 8.060000 0.0650000 0.12500000 6.1850000 3.10000000
#> 36 3 78 4.000000 0.7050000 0.66500000 1.1850000 3.52000000
#> 37 3 79 7.733333 0.5722222 0.11666667 1.1777778 0.02777778
#> 38 3 86 3.866667 1.6333333 0.94444444 4.1055556 3.02777778
#> 39 3 (all) 6.967965 1.7177489 0.68051948 3.8666667 2.52554113