Use acast or dcast depending on whether you want vector/matrix/array output or data frame output. Data frames can have at most two dimensions.

dcast(
  data,
  formula,
  fun.aggregate = NULL,
  ...,
  margins = NULL,
  subset = NULL,
  fill = NULL,
  drop = TRUE,
  value.var = guess_value(data)
)

acast(
  data,
  formula,
  fun.aggregate = NULL,
  ...,
  margins = NULL,
  subset = NULL,
  fill = NULL,
  drop = TRUE,
  value.var = guess_value(data)
)

Arguments

data

molten data frame, see melt.

formula

casting formula, see details for specifics.

fun.aggregate

aggregation function needed if variables do not identify a single observation for each output cell. Defaults to length (with a message) if needed but not specified.

...

further arguments are passed to aggregating function

margins

vector of variable names (can include "grand\_col" and "grand\_row") to compute margins for, or TRUE to compute all margins . Any variables that can not be margined over will be silently dropped.

subset

quoted expression used to subset data prior to reshaping, e.g. subset = .(variable=="length").

fill

value with which to fill in structural missings, defaults to value from applying fun.aggregate to 0 length vector

drop

should missing combinations dropped or kept?

value.var

name of column which stores values, see guess_value for default strategies to figure this out.

Details

The cast formula has the following format: x_variable + x_2 ~ y_variable + y_2 ~ z_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 ~ ..

Alternatively, you can supply a list of quoted expressions, in the form list(.(x_variable, x_2), .(y_variable, y_2), .(z)). The advantage of this form is that you can cast based on transformations of the variables: list(.(a + b), (c = round(c))). See the documentation for . for more details and alternative formats.

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 single summary statistic.

Examples

#Air quality example
names(airquality) <- tolower(names(airquality))
aqm <- melt(airquality, id=c("month", "day"), na.rm=TRUE)

acast(aqm, day ~ month ~ variable)
#> , , ozone
#> 
#>      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
#> 
#> , , solar.r
#> 
#>      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
#> 
#> , , wind
#> 
#>       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
#> 
#> , , temp
#> 
#>     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
#> 
acast(aqm, month ~ variable, mean)
#>      ozone  solar.r      wind     temp
#> 5 23.61538 181.2963 11.622581 65.54839
#> 6 29.44444 190.1667 10.266667 79.10000
#> 7 59.11538 216.4839  8.941935 83.90323
#> 8 59.96154 171.8571  8.793548 83.96774
#> 9 31.44828 167.4333 10.180000 76.90000
acast(aqm, month ~ variable, mean, margins = TRUE)
#>          ozone  solar.r      wind     temp    (all)
#> 5     23.61538 181.2963 11.622581 65.54839 68.70696
#> 6     29.44444 190.1667 10.266667 79.10000 87.38384
#> 7     59.11538 216.4839  8.941935 83.90323 93.49748
#> 8     59.96154 171.8571  8.793548 83.96774 79.71207
#> 9     31.44828 167.4333 10.180000 76.90000 71.82689
#> (all) 42.12931 185.9315  9.957516 77.88235 80.05722
dcast(aqm, month ~ variable, mean, margins = c("month", "variable"))
#>   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

library(plyr) # needed to access . function
acast(aqm, variable ~ month, mean, subset = .(variable == "ozone"))
#>              5        6        7        8        9
#> ozone 23.61538 29.44444 59.11538 59.96154 31.44828
acast(aqm, variable ~ month, mean, subset = .(month == 5))
#>                 5
#> ozone    23.61538
#> solar.r 181.29630
#> wind     11.62258
#> temp     65.54839

#Chick weight example
names(ChickWeight) <- tolower(names(ChickWeight))
chick_m <- melt(ChickWeight, id=2:4, na.rm=TRUE)

dcast(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
dcast(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
acast(chick_m, diet ~ time, mean) # average effect of diet & time
#>      0     2        4        6         8        10       12       14       16
#> 1 41.4 47.25 56.47368 66.78947  79.68421  93.05263 108.5263 123.3889 144.6471
#> 2 40.7 49.40 59.80000 75.40000  91.70000 108.50000 131.3000 141.9000 164.7000
#> 3 40.8 50.40 62.20000 77.90000  98.40000 117.10000 144.4000 164.5000 197.4000
#> 4 41.0 51.80 64.50000 83.90000 105.60000 126.00000 151.4000 161.8000 182.0000
#>         18       20       21
#> 1 158.9412 170.4118 177.7500
#> 2 187.7000 205.6000 214.7000
#> 3 233.1000 258.9000 270.3000
#> 4 202.9000 233.8889 238.5556

# How many chicks at each time? - checking for balance
acast(chick_m, time ~ diet, length)
#>     1  2  3  4
#> 0  20 10 10 10
#> 2  20 10 10 10
#> 4  19 10 10 10
#> 6  19 10 10 10
#> 8  19 10 10 10
#> 10 19 10 10 10
#> 12 19 10 10 10
#> 14 18 10 10 10
#> 16 17 10 10 10
#> 18 17 10 10 10
#> 20 17 10 10  9
#> 21 16 10 10  9
acast(chick_m, chick ~ time, mean)
#>     0  2   4   6   8  10  12  14  16  18  20  21
#> 18 39 35 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
#> 16 41 45  49  51  57  51  54 NaN NaN NaN NaN NaN
#> 15 41 49  56  64  68  68  67  68 NaN NaN NaN NaN
#> 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 NaN
#> 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 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 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 42 51  65  86 103 118 127 138 145 146 NaN NaN
#> 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
acast(chick_m, chick ~ time, mean, subset = .(time < 10 & chick < 20))
#>     0  2   4   6   8
#> 18 39 35 NaN NaN NaN
#> 16 41 45  49  51  57
#> 15 41 49  56  64  68
#> 13 41 48  53  60  65
#> 9  42 51  59  68  85

acast(chick_m, time ~ diet, length)
#>     1  2  3  4
#> 0  20 10 10 10
#> 2  20 10 10 10
#> 4  19 10 10 10
#> 6  19 10 10 10
#> 8  19 10 10 10
#> 10 19 10 10 10
#> 12 19 10 10 10
#> 14 18 10 10 10
#> 16 17 10 10 10
#> 18 17 10 10 10
#> 20 17 10 10  9
#> 21 16 10 10  9

dcast(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
acast(chick_m, diet + chick ~ time)
#>       0  2  4  6   8  10  12  14  16  18  20  21
#> 1_18 39 35 NA NA  NA  NA  NA  NA  NA  NA  NA  NA
#> 1_16 41 45 49 51  57  51  54  NA  NA  NA  NA  NA
#> 1_15 41 49 56 64  68  68  67  68  NA  NA  NA  NA
#> 1_13 41 48 53 60  65  67  71  70  71  81  91  96
#> 1_9  42 51 59 68  85  96  90  92  93 100 100  98
#> 1_20 41 47 54 58  65  73  77  89  98 107 115 117
#> 1_10 41 44 52 63  74  81  89  96 101 112 120 124
#> 1_8  42 50 61 71  84  93 110 116 126 134 125  NA
#> 1_17 42 51 61 72  83  89  98 103 113 123 133 142
#> 1_19 43 48 55 62  65  71  82  88 106 120 144 157
#> 1_4  42 49 56 67  74  87 102 108 136 154 160 157
#> 1_6  41 49 59 74  97 124 141 148 155 160 160 157
#> 1_11 43 51 63 84 112 139 168 177 182 184 181 175
#> 1_3  43 39 55 67  84  99 115 138 163 187 198 202
#> 1_1  42 51 59 64  76  93 106 125 149 171 199 205
#> 1_12 41 49 56 62  72  88 119 135 162 185 195 205
#> 1_2  40 49 58 72  84 103 122 138 162 187 209 215
#> 1_5  41 42 48 60  79 106 141 164 197 199 220 223
#> 1_14 41 49 62 79 101 128 164 192 227 248 259 266
#> 1_7  41 49 57 71  89 112 146 174 218 250 288 305
#> 2_24 42 52 58 74  66  68  70  71  72  72  76  74
#> 2_30 42 48 59 72  85  98 115 122 143 151 157 150
#> 2_22 41 55 64 77  90  95 108 111 131 148 164 167
#> 2_23 43 52 61 73  90 103 127 135 145 163 170 175
#> 2_27 39 46 58 73  87 100 115 123 144 163 185 192
#> 2_28 39 46 58 73  92 114 145 156 184 207 212 233
#> 2_26 42 48 57 74  93 114 136 147 169 205 236 251
#> 2_25 40 49 62 78 102 124 146 164 197 231 259 265
#> 2_29 39 48 59 74  87 106 134 150 187 230 279 309
#> 2_21 40 50 62 86 125 163 217 240 275 307 318 331
#> 3_33 39 50 63 77  96 111 137 144 151 146 156 147
#> 3_37 41 48 56 68  80  83 103 112 135 157 169 178
#> 3_36 39 48 61 76  98 116 145 166 198 227 225 220
#> 3_31 42 53 62 73  85 102 123 138 170 204 235 256
#> 3_39 42 50 61 78  89 109 130 146 170 214 250 272
#> 3_38 41 49 61 74  98 109 128 154 192 232 280 290
#> 3_32 41 49 65 82 107 129 159 179 221 263 291 305
#> 3_40 41 55 66 79 101 120 154 182 215 262 295 321
#> 3_34 41 49 63 85 107 134 164 186 235 294 327 341
#> 3_35 41 53 64 87 123 158 201 238 287 332 361 373
#> 4_44 42 51 65 86 103 118 127 138 145 146  NA  NA
#> 4_45 41 50 61 78  98 117 135 141 147 174 197 196
#> 4_43 42 55 69 96 131 157 184 188 197 198 199 200
#> 4_41 42 51 66 85 103 124 155 153 175 184 199 204
#> 4_47 41 53 66 79 100 123 148 157 168 185 210 205
#> 4_49 40 53 64 85 108 128 152 166 184 203 233 237
#> 4_46 40 52 62 82 101 120 144 156 173 210 231 238
#> 4_50 41 54 67 84 105 122 155 175 205 234 264 264
#> 4_42 42 49 63 84 103 126 160 174 204 234 269 281
#> 4_48 39 50 62 80 104 125 154 170 222 261 303 322
acast(chick_m, chick ~ time ~ diet)
#> , , 1
#> 
#>     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
#> 
#> , , 2
#> 
#>     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
#> 
#> , , 3
#> 
#>     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
#> 
#> , , 4
#> 
#>     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
#> 
acast(chick_m, diet + chick ~ time, length, margins="diet")
#>              0  2  4  6  8 10 12 14 16 18 20 21
#> 1_18         1  1  0  0  0  0  0  0  0  0  0  0
#> 1_16         1  1  1  1  1  1  1  0  0  0  0  0
#> 1_15         1  1  1  1  1  1  1  1  0  0  0  0
#> 1_13         1  1  1  1  1  1  1  1  1  1  1  1
#> 1_9          1  1  1  1  1  1  1  1  1  1  1  1
#> 1_20         1  1  1  1  1  1  1  1  1  1  1  1
#> 1_10         1  1  1  1  1  1  1  1  1  1  1  1
#> 1_8          1  1  1  1  1  1  1  1  1  1  1  0
#> 1_17         1  1  1  1  1  1  1  1  1  1  1  1
#> 1_19         1  1  1  1  1  1  1  1  1  1  1  1
#> 1_4          1  1  1  1  1  1  1  1  1  1  1  1
#> 1_6          1  1  1  1  1  1  1  1  1  1  1  1
#> 1_11         1  1  1  1  1  1  1  1  1  1  1  1
#> 1_3          1  1  1  1  1  1  1  1  1  1  1  1
#> 1_1          1  1  1  1  1  1  1  1  1  1  1  1
#> 1_12         1  1  1  1  1  1  1  1  1  1  1  1
#> 1_2          1  1  1  1  1  1  1  1  1  1  1  1
#> 1_5          1  1  1  1  1  1  1  1  1  1  1  1
#> 1_14         1  1  1  1  1  1  1  1  1  1  1  1
#> 1_7          1  1  1  1  1  1  1  1  1  1  1  1
#> 2_24         1  1  1  1  1  1  1  1  1  1  1  1
#> 2_30         1  1  1  1  1  1  1  1  1  1  1  1
#> 2_22         1  1  1  1  1  1  1  1  1  1  1  1
#> 2_23         1  1  1  1  1  1  1  1  1  1  1  1
#> 2_27         1  1  1  1  1  1  1  1  1  1  1  1
#> 2_28         1  1  1  1  1  1  1  1  1  1  1  1
#> 2_26         1  1  1  1  1  1  1  1  1  1  1  1
#> 2_25         1  1  1  1  1  1  1  1  1  1  1  1
#> 2_29         1  1  1  1  1  1  1  1  1  1  1  1
#> 2_21         1  1  1  1  1  1  1  1  1  1  1  1
#> 3_33         1  1  1  1  1  1  1  1  1  1  1  1
#> 3_37         1  1  1  1  1  1  1  1  1  1  1  1
#> 3_36         1  1  1  1  1  1  1  1  1  1  1  1
#> 3_31         1  1  1  1  1  1  1  1  1  1  1  1
#> 3_39         1  1  1  1  1  1  1  1  1  1  1  1
#> 3_38         1  1  1  1  1  1  1  1  1  1  1  1
#> 3_32         1  1  1  1  1  1  1  1  1  1  1  1
#> 3_40         1  1  1  1  1  1  1  1  1  1  1  1
#> 3_34         1  1  1  1  1  1  1  1  1  1  1  1
#> 3_35         1  1  1  1  1  1  1  1  1  1  1  1
#> 4_44         1  1  1  1  1  1  1  1  1  1  0  0
#> 4_45         1  1  1  1  1  1  1  1  1  1  1  1
#> 4_43         1  1  1  1  1  1  1  1  1  1  1  1
#> 4_41         1  1  1  1  1  1  1  1  1  1  1  1
#> 4_47         1  1  1  1  1  1  1  1  1  1  1  1
#> 4_49         1  1  1  1  1  1  1  1  1  1  1  1
#> 4_46         1  1  1  1  1  1  1  1  1  1  1  1
#> 4_50         1  1  1  1  1  1  1  1  1  1  1  1
#> 4_42         1  1  1  1  1  1  1  1  1  1  1  1
#> 4_48         1  1  1  1  1  1  1  1  1  1  1  1
#> (all)_(all) 50 50 49 49 49 49 49 48 47 47 46 45
acast(chick_m, diet + chick ~ time, length, drop = FALSE)
#>      0 2 4 6 8 10 12 14 16 18 20 21
#> 1_18 1 1 0 0 0  0  0  0  0  0  0  0
#> 1_16 1 1 1 1 1  1  1  0  0  0  0  0
#> 1_15 1 1 1 1 1  1  1  1  0  0  0  0
#> 1_13 1 1 1 1 1  1  1  1  1  1  1  1
#> 1_9  1 1 1 1 1  1  1  1  1  1  1  1
#> 1_20 1 1 1 1 1  1  1  1  1  1  1  1
#> 1_10 1 1 1 1 1  1  1  1  1  1  1  1
#> 1_8  1 1 1 1 1  1  1  1  1  1  1  0
#> 1_17 1 1 1 1 1  1  1  1  1  1  1  1
#> 1_19 1 1 1 1 1  1  1  1  1  1  1  1
#> 1_4  1 1 1 1 1  1  1  1  1  1  1  1
#> 1_6  1 1 1 1 1  1  1  1  1  1  1  1
#> 1_11 1 1 1 1 1  1  1  1  1  1  1  1
#> 1_3  1 1 1 1 1  1  1  1  1  1  1  1
#> 1_1  1 1 1 1 1  1  1  1  1  1  1  1
#> 1_12 1 1 1 1 1  1  1  1  1  1  1  1
#> 1_2  1 1 1 1 1  1  1  1  1  1  1  1
#> 1_5  1 1 1 1 1  1  1  1  1  1  1  1
#> 1_14 1 1 1 1 1  1  1  1  1  1  1  1
#> 1_7  1 1 1 1 1  1  1  1  1  1  1  1
#> 1_24 0 0 0 0 0  0  0  0  0  0  0  0
#> 1_30 0 0 0 0 0  0  0  0  0  0  0  0
#> 1_22 0 0 0 0 0  0  0  0  0  0  0  0
#> 1_23 0 0 0 0 0  0  0  0  0  0  0  0
#> 1_27 0 0 0 0 0  0  0  0  0  0  0  0
#> 1_28 0 0 0 0 0  0  0  0  0  0  0  0
#> 1_26 0 0 0 0 0  0  0  0  0  0  0  0
#> 1_25 0 0 0 0 0  0  0  0  0  0  0  0
#> 1_29 0 0 0 0 0  0  0  0  0  0  0  0
#> 1_21 0 0 0 0 0  0  0  0  0  0  0  0
#> 1_33 0 0 0 0 0  0  0  0  0  0  0  0
#> 1_37 0 0 0 0 0  0  0  0  0  0  0  0
#> 1_36 0 0 0 0 0  0  0  0  0  0  0  0
#> 1_31 0 0 0 0 0  0  0  0  0  0  0  0
#> 1_39 0 0 0 0 0  0  0  0  0  0  0  0
#> 1_38 0 0 0 0 0  0  0  0  0  0  0  0
#> 1_32 0 0 0 0 0  0  0  0  0  0  0  0
#> 1_40 0 0 0 0 0  0  0  0  0  0  0  0
#> 1_34 0 0 0 0 0  0  0  0  0  0  0  0
#> 1_35 0 0 0 0 0  0  0  0  0  0  0  0
#> 1_44 0 0 0 0 0  0  0  0  0  0  0  0
#> 1_45 0 0 0 0 0  0  0  0  0  0  0  0
#> 1_43 0 0 0 0 0  0  0  0  0  0  0  0
#> 1_41 0 0 0 0 0  0  0  0  0  0  0  0
#> 1_47 0 0 0 0 0  0  0  0  0  0  0  0
#> 1_49 0 0 0 0 0  0  0  0  0  0  0  0
#> 1_46 0 0 0 0 0  0  0  0  0  0  0  0
#> 1_50 0 0 0 0 0  0  0  0  0  0  0  0
#> 1_42 0 0 0 0 0  0  0  0  0  0  0  0
#> 1_48 0 0 0 0 0  0  0  0  0  0  0  0
#> 2_18 0 0 0 0 0  0  0  0  0  0  0  0
#> 2_16 0 0 0 0 0  0  0  0  0  0  0  0
#> 2_15 0 0 0 0 0  0  0  0  0  0  0  0
#> 2_13 0 0 0 0 0  0  0  0  0  0  0  0
#> 2_9  0 0 0 0 0  0  0  0  0  0  0  0
#> 2_20 0 0 0 0 0  0  0  0  0  0  0  0
#> 2_10 0 0 0 0 0  0  0  0  0  0  0  0
#> 2_8  0 0 0 0 0  0  0  0  0  0  0  0
#> 2_17 0 0 0 0 0  0  0  0  0  0  0  0
#> 2_19 0 0 0 0 0  0  0  0  0  0  0  0
#> 2_4  0 0 0 0 0  0  0  0  0  0  0  0
#> 2_6  0 0 0 0 0  0  0  0  0  0  0  0
#> 2_11 0 0 0 0 0  0  0  0  0  0  0  0
#> 2_3  0 0 0 0 0  0  0  0  0  0  0  0
#> 2_1  0 0 0 0 0  0  0  0  0  0  0  0
#> 2_12 0 0 0 0 0  0  0  0  0  0  0  0
#> 2_2  0 0 0 0 0  0  0  0  0  0  0  0
#> 2_5  0 0 0 0 0  0  0  0  0  0  0  0
#> 2_14 0 0 0 0 0  0  0  0  0  0  0  0
#> 2_7  0 0 0 0 0  0  0  0  0  0  0  0
#> 2_24 1 1 1 1 1  1  1  1  1  1  1  1
#> 2_30 1 1 1 1 1  1  1  1  1  1  1  1
#> 2_22 1 1 1 1 1  1  1  1  1  1  1  1
#> 2_23 1 1 1 1 1  1  1  1  1  1  1  1
#> 2_27 1 1 1 1 1  1  1  1  1  1  1  1
#> 2_28 1 1 1 1 1  1  1  1  1  1  1  1
#> 2_26 1 1 1 1 1  1  1  1  1  1  1  1
#> 2_25 1 1 1 1 1  1  1  1  1  1  1  1
#> 2_29 1 1 1 1 1  1  1  1  1  1  1  1
#> 2_21 1 1 1 1 1  1  1  1  1  1  1  1
#> 2_33 0 0 0 0 0  0  0  0  0  0  0  0
#> 2_37 0 0 0 0 0  0  0  0  0  0  0  0
#> 2_36 0 0 0 0 0  0  0  0  0  0  0  0
#> 2_31 0 0 0 0 0  0  0  0  0  0  0  0
#> 2_39 0 0 0 0 0  0  0  0  0  0  0  0
#> 2_38 0 0 0 0 0  0  0  0  0  0  0  0
#> 2_32 0 0 0 0 0  0  0  0  0  0  0  0
#> 2_40 0 0 0 0 0  0  0  0  0  0  0  0
#> 2_34 0 0 0 0 0  0  0  0  0  0  0  0
#> 2_35 0 0 0 0 0  0  0  0  0  0  0  0
#> 2_44 0 0 0 0 0  0  0  0  0  0  0  0
#> 2_45 0 0 0 0 0  0  0  0  0  0  0  0
#> 2_43 0 0 0 0 0  0  0  0  0  0  0  0
#> 2_41 0 0 0 0 0  0  0  0  0  0  0  0
#> 2_47 0 0 0 0 0  0  0  0  0  0  0  0
#> 2_49 0 0 0 0 0  0  0  0  0  0  0  0
#> 2_46 0 0 0 0 0  0  0  0  0  0  0  0
#> 2_50 0 0 0 0 0  0  0  0  0  0  0  0
#> 2_42 0 0 0 0 0  0  0  0  0  0  0  0
#> 2_48 0 0 0 0 0  0  0  0  0  0  0  0
#> 3_18 0 0 0 0 0  0  0  0  0  0  0  0
#> 3_16 0 0 0 0 0  0  0  0  0  0  0  0
#> 3_15 0 0 0 0 0  0  0  0  0  0  0  0
#> 3_13 0 0 0 0 0  0  0  0  0  0  0  0
#> 3_9  0 0 0 0 0  0  0  0  0  0  0  0
#> 3_20 0 0 0 0 0  0  0  0  0  0  0  0
#> 3_10 0 0 0 0 0  0  0  0  0  0  0  0
#> 3_8  0 0 0 0 0  0  0  0  0  0  0  0
#> 3_17 0 0 0 0 0  0  0  0  0  0  0  0
#> 3_19 0 0 0 0 0  0  0  0  0  0  0  0
#> 3_4  0 0 0 0 0  0  0  0  0  0  0  0
#> 3_6  0 0 0 0 0  0  0  0  0  0  0  0
#> 3_11 0 0 0 0 0  0  0  0  0  0  0  0
#> 3_3  0 0 0 0 0  0  0  0  0  0  0  0
#> 3_1  0 0 0 0 0  0  0  0  0  0  0  0
#> 3_12 0 0 0 0 0  0  0  0  0  0  0  0
#> 3_2  0 0 0 0 0  0  0  0  0  0  0  0
#> 3_5  0 0 0 0 0  0  0  0  0  0  0  0
#> 3_14 0 0 0 0 0  0  0  0  0  0  0  0
#> 3_7  0 0 0 0 0  0  0  0  0  0  0  0
#> 3_24 0 0 0 0 0  0  0  0  0  0  0  0
#> 3_30 0 0 0 0 0  0  0  0  0  0  0  0
#> 3_22 0 0 0 0 0  0  0  0  0  0  0  0
#> 3_23 0 0 0 0 0  0  0  0  0  0  0  0
#> 3_27 0 0 0 0 0  0  0  0  0  0  0  0
#> 3_28 0 0 0 0 0  0  0  0  0  0  0  0
#> 3_26 0 0 0 0 0  0  0  0  0  0  0  0
#> 3_25 0 0 0 0 0  0  0  0  0  0  0  0
#> 3_29 0 0 0 0 0  0  0  0  0  0  0  0
#> 3_21 0 0 0 0 0  0  0  0  0  0  0  0
#> 3_33 1 1 1 1 1  1  1  1  1  1  1  1
#> 3_37 1 1 1 1 1  1  1  1  1  1  1  1
#> 3_36 1 1 1 1 1  1  1  1  1  1  1  1
#> 3_31 1 1 1 1 1  1  1  1  1  1  1  1
#> 3_39 1 1 1 1 1  1  1  1  1  1  1  1
#> 3_38 1 1 1 1 1  1  1  1  1  1  1  1
#> 3_32 1 1 1 1 1  1  1  1  1  1  1  1
#> 3_40 1 1 1 1 1  1  1  1  1  1  1  1
#> 3_34 1 1 1 1 1  1  1  1  1  1  1  1
#> 3_35 1 1 1 1 1  1  1  1  1  1  1  1
#> 3_44 0 0 0 0 0  0  0  0  0  0  0  0
#> 3_45 0 0 0 0 0  0  0  0  0  0  0  0
#> 3_43 0 0 0 0 0  0  0  0  0  0  0  0
#> 3_41 0 0 0 0 0  0  0  0  0  0  0  0
#> 3_47 0 0 0 0 0  0  0  0  0  0  0  0
#> 3_49 0 0 0 0 0  0  0  0  0  0  0  0
#> 3_46 0 0 0 0 0  0  0  0  0  0  0  0
#> 3_50 0 0 0 0 0  0  0  0  0  0  0  0
#> 3_42 0 0 0 0 0  0  0  0  0  0  0  0
#> 3_48 0 0 0 0 0  0  0  0  0  0  0  0
#> 4_18 0 0 0 0 0  0  0  0  0  0  0  0
#> 4_16 0 0 0 0 0  0  0  0  0  0  0  0
#> 4_15 0 0 0 0 0  0  0  0  0  0  0  0
#> 4_13 0 0 0 0 0  0  0  0  0  0  0  0
#> 4_9  0 0 0 0 0  0  0  0  0  0  0  0
#> 4_20 0 0 0 0 0  0  0  0  0  0  0  0
#> 4_10 0 0 0 0 0  0  0  0  0  0  0  0
#> 4_8  0 0 0 0 0  0  0  0  0  0  0  0
#> 4_17 0 0 0 0 0  0  0  0  0  0  0  0
#> 4_19 0 0 0 0 0  0  0  0  0  0  0  0
#> 4_4  0 0 0 0 0  0  0  0  0  0  0  0
#> 4_6  0 0 0 0 0  0  0  0  0  0  0  0
#> 4_11 0 0 0 0 0  0  0  0  0  0  0  0
#> 4_3  0 0 0 0 0  0  0  0  0  0  0  0
#> 4_1  0 0 0 0 0  0  0  0  0  0  0  0
#> 4_12 0 0 0 0 0  0  0  0  0  0  0  0
#> 4_2  0 0 0 0 0  0  0  0  0  0  0  0
#> 4_5  0 0 0 0 0  0  0  0  0  0  0  0
#> 4_14 0 0 0 0 0  0  0  0  0  0  0  0
#> 4_7  0 0 0 0 0  0  0  0  0  0  0  0
#> 4_24 0 0 0 0 0  0  0  0  0  0  0  0
#> 4_30 0 0 0 0 0  0  0  0  0  0  0  0
#> 4_22 0 0 0 0 0  0  0  0  0  0  0  0
#> 4_23 0 0 0 0 0  0  0  0  0  0  0  0
#> 4_27 0 0 0 0 0  0  0  0  0  0  0  0
#> 4_28 0 0 0 0 0  0  0  0  0  0  0  0
#> 4_26 0 0 0 0 0  0  0  0  0  0  0  0
#> 4_25 0 0 0 0 0  0  0  0  0  0  0  0
#> 4_29 0 0 0 0 0  0  0  0  0  0  0  0
#> 4_21 0 0 0 0 0  0  0  0  0  0  0  0
#> 4_33 0 0 0 0 0  0  0  0  0  0  0  0
#> 4_37 0 0 0 0 0  0  0  0  0  0  0  0
#> 4_36 0 0 0 0 0  0  0  0  0  0  0  0
#> 4_31 0 0 0 0 0  0  0  0  0  0  0  0
#> 4_39 0 0 0 0 0  0  0  0  0  0  0  0
#> 4_38 0 0 0 0 0  0  0  0  0  0  0  0
#> 4_32 0 0 0 0 0  0  0  0  0  0  0  0
#> 4_40 0 0 0 0 0  0  0  0  0  0  0  0
#> 4_34 0 0 0 0 0  0  0  0  0  0  0  0
#> 4_35 0 0 0 0 0  0  0  0  0  0  0  0
#> 4_44 1 1 1 1 1  1  1  1  1  1  0  0
#> 4_45 1 1 1 1 1  1  1  1  1  1  1  1
#> 4_43 1 1 1 1 1  1  1  1  1  1  1  1
#> 4_41 1 1 1 1 1  1  1  1  1  1  1  1
#> 4_47 1 1 1 1 1  1  1  1  1  1  1  1
#> 4_49 1 1 1 1 1  1  1  1  1  1  1  1
#> 4_46 1 1 1 1 1  1  1  1  1  1  1  1
#> 4_50 1 1 1 1 1  1  1  1  1  1  1  1
#> 4_42 1 1 1 1 1  1  1  1  1  1  1  1
#> 4_48 1 1 1 1 1  1  1  1  1  1  1  1

#Tips example
dcast(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

ff_d <- melt(french_fries, id=1:4, na.rm=TRUE)
acast(ff_d, subject ~ time, length)
#>     1  2  3  4  5  6  7  8  9 10
#> 3  30 30 30 30 30 30 30 30 30  0
#> 10 30 30 30 30 30 30 30 30 30 30
#> 15 30 30 30 30 25 30 30 30 30 30
#> 16 30 30 30 30 30 30 30 29 30 30
#> 19 30 30 30 30 30 30 30 30 30 30
#> 31 30 30 30 30 30 30 30 30  0 30
#> 51 30 30 30 30 30 30 30 30 30 30
#> 52 30 30 30 30 30 30 30 30 30 30
#> 63 30 30 30 30 30 30 30 30 30 30
#> 78 30 30 30 30 30 30 30 30 30 30
#> 79 30 30 30 30 30 30 29 28 30  0
#> 86 30 30 30 30 30 30 30 30  0 30
acast(ff_d, subject ~ time, length, fill=0)
#>     1  2  3  4  5  6  7  8  9 10
#> 3  30 30 30 30 30 30 30 30 30  0
#> 10 30 30 30 30 30 30 30 30 30 30
#> 15 30 30 30 30 25 30 30 30 30 30
#> 16 30 30 30 30 30 30 30 29 30 30
#> 19 30 30 30 30 30 30 30 30 30 30
#> 31 30 30 30 30 30 30 30 30  0 30
#> 51 30 30 30 30 30 30 30 30 30 30
#> 52 30 30 30 30 30 30 30 30 30 30
#> 63 30 30 30 30 30 30 30 30 30 30
#> 78 30 30 30 30 30 30 30 30 30 30
#> 79 30 30 30 30 30 30 29 28 30  0
#> 86 30 30 30 30 30 30 30 30  0 30
dcast(ff_d, treatment ~ variable, mean, margins = TRUE)
#>   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
dcast(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         2       3  6.738889 0.5888889 0.10555556 3.1388889 2.47777778
#> 14         2      10  9.995000 6.9800000 0.47500000 2.1500000 0.82000000
#> 15         2      15  4.405000 1.3150000 0.34000000 2.2850000 2.06000000
#> 16         2      16  6.450000 3.3736842 1.05500000 3.4000000 0.45500000
#> 17         2      19  8.640000 2.4500000 1.13500000 5.4050000 4.15500000
#> 18         2      31  8.033333 0.6166667 0.15555556 6.0500000 5.06111111
#> 19         2      51  9.985000 3.7950000 1.57000000 4.6700000 2.25500000
#> 20         2      52  5.515000 1.0250000 1.18000000 4.2250000 2.19500000
#> 21         2      63  8.415000 0.1050000 0.01000000 5.0900000 4.35500000
#> 22         2      78  3.780000 0.2950000 0.75500000 1.5500000 2.72500000
#> 23         2      79  7.938889 0.6941176 0.25555556 1.0333333 0.00000000
#> 24         2      86  3.994444 2.0611111 0.78333333 4.5222222 2.84444444
#> 25         3       3  5.294444 0.7666667 0.09444444 2.8555556 2.86666667
#> 26         3      10 10.030000 6.4500000 0.14500000 3.1100000 0.69000000
#> 27         3      15  3.963158 0.9894737 0.44210526 2.5473684 2.36842105
#> 28         3      16  6.860000 2.7000000 1.12500000 3.2000000 0.55500000
#> 29         3      19  8.740000 1.7250000 2.07000000 7.2400000 3.90500000
#> 30         3      31  9.027778 0.6500000 0.17222222 6.5777778 5.12777778
#> 31         3      51 10.220000 3.1300000 1.35000000 4.9150000 2.54500000
#> 32         3      52  5.475000 0.8650000 0.76500000 3.1600000 2.66000000
#> 33         3      63  8.060000 0.0650000 0.12500000 6.1850000 3.10000000
#> 34         3      78  4.000000 0.7050000 0.66500000 1.1850000 3.52000000
#> 35         3      79  7.733333 0.5722222 0.11666667 1.1777778 0.02777778
#> 36         3      86  3.866667 1.6333333 0.94444444 4.1055556 3.02777778
#> 37     (all)   (all)  6.952518 1.8236994 0.66417266 3.8522302 2.52175793
if (require("lattice")) {
 lattice::xyplot(`1` ~ `2` | variable, dcast(ff_d, ... ~ rep), aspect="iso")
}
#> Loading required package: lattice