reshape2

1 array

library(reshape2)
a <- array(c(1:23, NA), c(2,3,4))
a
## , , 1
## 
##      [,1] [,2] [,3]
## [1,]    1    3    5
## [2,]    2    4    6
## 
## , , 2
## 
##      [,1] [,2] [,3]
## [1,]    7    9   11
## [2,]    8   10   12
## 
## , , 3
## 
##      [,1] [,2] [,3]
## [1,]   13   15   17
## [2,]   14   16   18
## 
## , , 4
## 
##      [,1] [,2] [,3]
## [1,]   19   21   23
## [2,]   20   22   NA
melt(a)
##    Var1 Var2 Var3 value
## 1     1    1    1     1
## 2     2    1    1     2
## 3     1    2    1     3
## 4     2    2    1     4
## 5     1    3    1     5
## 6     2    3    1     6
## 7     1    1    2     7
## 8     2    1    2     8
## 9     1    2    2     9
## 10    2    2    2    10
## 11    1    3    2    11
## 12    2    3    2    12
## 13    1    1    3    13
## 14    2    1    3    14
## 15    1    2    3    15
## 16    2    2    3    16
## 17    1    3    3    17
## 18    2    3    3    18
## 19    1    1    4    19
## 20    2    1    4    20
## 21    1    2    4    21
## 22    2    2    4    22
## 23    1    3    4    23
## 24    2    3    4    NA
melt(a, na.rm = TRUE)
##    Var1 Var2 Var3 value
## 1     1    1    1     1
## 2     2    1    1     2
## 3     1    2    1     3
## 4     2    2    1     4
## 5     1    3    1     5
## 6     2    3    1     6
## 7     1    1    2     7
## 8     2    1    2     8
## 9     1    2    2     9
## 10    2    2    2    10
## 11    1    3    2    11
## 12    2    3    2    12
## 13    1    1    3    13
## 14    2    1    3    14
## 15    1    2    3    15
## 16    2    2    3    16
## 17    1    3    3    17
## 18    2    3    3    18
## 19    1    1    4    19
## 20    2    1    4    20
## 21    1    2    4    21
## 22    2    2    4    22
## 23    1    3    4    23

2 list

a <- list(matrix(1:4, ncol=2), matrix(1:6, ncol=2))
melt(a)
##    Var1 Var2 value L1
## 1     1    1     1  1
## 2     2    1     2  1
## 3     1    2     3  1
## 4     2    2     4  1
## 5     1    1     1  2
## 6     2    1     2  2
## 7     3    1     3  2
## 8     1    2     4  2
## 9     2    2     5  2
## 10    3    2     6  2

3 data.frame

names(airquality) <- tolower(names(airquality))
head(airquality)
##   ozone solar.r wind temp month day
## 1    41     190  7.4   67     5   1
## 2    36     118  8.0   72     5   2
## 3    12     149 12.6   74     5   3
## 4    18     313 11.5   62     5   4
## 5    NA      NA 14.3   56     5   5
## 6    28      NA 14.9   66     5   6
aqm <- melt(airquality, id=c("month", "day"), na.rm=TRUE)
head(aqm)
##   month day variable value
## 1     5   1    ozone    41
## 2     5   2    ozone    36
## 3     5   3    ozone    12
## 4     5   4    ozone    18
## 6     5   6    ozone    28
## 7     5   7    ozone    23
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))
head(ChickWeight)
##   weight time chick diet
## 1     42    0     1    1
## 2     51    2     1    1
## 3     59    4     1    1
## 4     64    6     1    1
## 5     76    8     1    1
## 6     93   10     1    1
summary(ChickWeight)
##      weight           time           chick     diet   
##  Min.   : 35.0   Min.   : 0.00   13     : 12   1:220  
##  1st Qu.: 63.0   1st Qu.: 4.00   9      : 12   2:120  
##  Median :103.0   Median :10.00   20     : 12   3:120  
##  Mean   :121.8   Mean   :10.72   10     : 12   4:118  
##  3rd Qu.:163.8   3rd Qu.:16.00   17     : 12          
##  Max.   :373.0   Max.   :21.00   19     : 12          
##                                  (Other):506
chick_m <- melt(ChickWeight, id=2:4, na.rm=TRUE)
head(chick_m)
##   time chick diet variable value
## 1    0     1    1   weight    42
## 2    2     1    1   weight    51
## 3    4     1    1   weight    59
## 4    6     1    1   weight    64
## 5    8     1    1   weight    76
## 6   10     1    1   weight    93
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
## 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
##         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
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
head(tips)
##   total_bill  tip    sex smoker day   time size
## 1      16.99 1.01 Female     No Sun Dinner    2
## 2      10.34 1.66   Male     No Sun Dinner    3
## 3      21.01 3.50   Male     No Sun Dinner    3
## 4      23.68 3.31   Male     No Sun Dinner    2
## 5      24.59 3.61 Female     No Sun Dinner    4
## 6      25.29 4.71   Male     No Sun Dinner    4
head(tips1<-melt(tips))
## Using sex, smoker, day, time as id variables
##      sex smoker day   time   variable value
## 1 Female     No Sun Dinner total_bill 16.99
## 2   Male     No Sun Dinner total_bill 10.34
## 3   Male     No Sun Dinner total_bill 21.01
## 4   Male     No Sun Dinner total_bill 23.68
## 5 Female     No Sun Dinner total_bill 24.59
## 6   Male     No Sun Dinner total_bill 25.29
dcast(tips1, sex ~ smoker, mean, subset = .(variable == "total_bill"))
##      sex       No      Yes
## 1 Female 18.10519 17.97788
## 2   Male 19.79124 22.28450
head(french_fries)
##    time treatment subject rep potato buttery grassy rancid painty
## 61    1         1       3   1    2.9     0.0    0.0    0.0    5.5
## 25    1         1       3   2   14.0     0.0    0.0    1.1    0.0
## 62    1         1      10   1   11.0     6.4    0.0    0.0    0.0
## 26    1         1      10   2    9.9     5.9    2.9    2.2    0.0
## 63    1         1      15   1    1.2     0.1    0.0    1.1    5.1
## 27    1         1      15   2    8.8     3.0    3.6    1.5    2.3
head(ff_d <- melt(french_fries, id=1:4, na.rm=TRUE))
##   time treatment subject rep variable value
## 1    1         1       3   1   potato   2.9
## 2    1         1       3   2   potato  14.0
## 3    1         1      10   1   potato  11.0
## 4    1         1      10   2   potato   9.9
## 5    1         1      15   1   potato   1.2
## 6    1         1      15   2   potato   8.8
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
lattice::xyplot(`1` ~ `2` | variable, dcast(ff_d, ... ~ rep), aspect="iso")

4 recast

str(french_fries)
## 'data.frame':    696 obs. of  9 variables:
##  $ time     : Factor w/ 10 levels "1","2","3","4",..: 1 1 1 1 1 1 1 1 1 1 ...
##  $ treatment: Factor w/ 3 levels "1","2","3": 1 1 1 1 1 1 1 1 1 1 ...
##  $ subject  : Factor w/ 12 levels "3","10","15",..: 1 1 2 2 3 3 4 4 5 5 ...
##  $ rep      : num  1 2 1 2 1 2 1 2 1 2 ...
##  $ potato   : num  2.9 14 11 9.9 1.2 8.8 9 8.2 7 13 ...
##  $ buttery  : num  0 0 6.4 5.9 0.1 3 2.6 4.4 3.2 0 ...
##  $ grassy   : num  0 0 0 2.9 0 3.6 0.4 0.3 0 3.1 ...
##  $ rancid   : num  0 1.1 0 2.2 1.1 1.5 0.1 1.4 4.9 4.3 ...
##  $ painty   : num  5.5 0 0 0 5.1 2.3 0.2 4 3.2 10.3 ...
recast(french_fries, time ~ variable, id.var = 1:4)
## Aggregation function missing: defaulting to length
##    time potato buttery grassy rancid painty
## 1     1     72      72     72     72     72
## 2     2     72      72     72     72     72
## 3     3     72      72     72     72     72
## 4     4     72      72     72     72     72
## 5     5     72      72     72     72     72
## 6     6     72      72     72     72     72
## 7     7     72      72     72     72     72
## 8     8     72      72     72     72     72
## 9     9     60      60     60     60     60
## 10   10     60      60     60     60     60

5 add_margins(Add margins to a data frame)

6 colsplit (Split a vector into multiple columns)

x <- c("a_1", "a_2", "b_2", "c_3")
vars <- colsplit(x, "_", c("trt", "time"))
vars
##   trt time
## 1   a    1
## 2   a    2
## 3   b    2
## 4   c    3
str(vars)
## 'data.frame':    4 obs. of  2 variables:
##  $ trt : chr  "a" "a" "b" "c"
##  $ time: int  1 2 2 3