Tidy data frame of a temporal measure
Usage
# S3 method for class 'dynet_metric'
as.data.frame(
x,
row.names = NULL,
optional = FALSE,
layout = c("long", "wide"),
what = c("values", "diagnostics"),
top = NULL,
...
)Arguments
- x
A
dynet_metricproduced by any measurement verb.- row.names
Ignored; present for compatibility with the generic.
- optional
Ignored; present for compatibility with the generic.
- layout
"long"gives one row per observation, which is the default and the shape every other verb expects."wide"spreads time across columns, giving one row per vertex (or per measure for graph-level quantities), which is convenient for exporting a table. A measure with no time axis, such as reachability, is spread by measure instead: one row per vertex with one column per measure.- what
"values", the default, gives the measured values."diagnostics"gives the record a prestige computation keeps when it cannot produce a value, which is what the accompanying warning refers to: one row per reporting block that was undefined, infeasible or nonconverged, withsession,time,stage,statusandreason, the solver'siterationsandresidual, thebalance_*family for the row-column scaling step, andspectral_radius,eigenspace_dimensionandeigen_residualfor the eigen step. A result with nothing to report gives a zero-row frame of those same columns rather thanNULL.- top
Keep only the
topvertices with the largest mean value, and order the result from largest to smallest. A single positive number;NULL, the default, keeps every row in the measure's own order. It selects vertices, so it applies towhat = "values"on a measure that has anodecolumn; anything else raises adynet_bad_inputerror.- ...
Ignored.
Value
A plain data.frame. Long layout carries measure and value
with one row per observation, alongside whichever columns say what was
measured: session when the network has sessions, time for anything
measured on a grid of bins, node for a vertex-level quantity, from
and to for a pair-level one, raw_spell for per-spell edge durations
and vertex_spell with implicit for per-spell vertex durations from
durations(), and from_group and to_group for mixing(). A
graph-level series carries time, measure and value alone.
Wide layout puts the identifying columns first and spreads what varies
across the rest. A measure taken on a grid of bins spreads time: one
column per bin, named t followed by the bin's time, leaving one row per
vertex and measure. A measure with no time axis, such as reachability,
spreads the measures instead: one column per measure, leaving one row per
vertex. A measure with no time axis and only one measure is already wide
and comes back unchanged.
Examples
dn <- dynet(school_contacts)
degree <- centrality_series(dn, measure = "degree")
as.data.frame(degree)
#> time node measure value
#> 1 0 Ana degree 1
#> 2 0 Ben degree 1
#> 3 0 Cara degree 1
#> 4 0 Dan degree 1
#> 5 0 Eve degree 2
#> 6 0 Finn degree 1
#> 7 0 Gita degree 1
#> 8 0 Hugo degree 1
#> 9 0 Iris degree 2
#> 10 0 Jonas degree 2
#> 11 0 Kira degree 2
#> 12 0 Leo degree 2
#> 13 0 Mira degree 3
#> 14 0 Nils degree 0
#> 15 1 Ana degree 0
#> 16 1 Ben degree 0
#> 17 1 Cara degree 1
#> 18 1 Dan degree 1
#> 19 1 Eve degree 4
#> 20 1 Finn degree 0
#> 21 1 Gita degree 1
#> 22 1 Hugo degree 0
#> 23 1 Iris degree 3
#> 24 1 Jonas degree 2
#> 25 1 Kira degree 2
#> 26 1 Leo degree 0
#> 27 1 Mira degree 2
#> 28 1 Nils degree 0
#> 29 2 Ana degree 1
#> 30 2 Ben degree 0
#> 31 2 Cara degree 1
#> 32 2 Dan degree 1
#> 33 2 Eve degree 2
#> 34 2 Finn degree 1
#> 35 2 Gita degree 2
#> 36 2 Hugo degree 1
#> 37 2 Iris degree 2
#> 38 2 Jonas degree 3
#> 39 2 Kira degree 3
#> 40 2 Leo degree 1
#> 41 2 Mira degree 0
#> 42 2 Nils degree 2
#> 43 3 Ana degree 2
#> 44 3 Ben degree 2
#> 45 3 Cara degree 0
#> 46 3 Dan degree 3
#> 47 3 Eve degree 3
#> 48 3 Finn degree 2
#> 49 3 Gita degree 1
#> 50 3 Hugo degree 1
#> 51 3 Iris degree 1
#> 52 3 Jonas degree 4
#> 53 3 Kira degree 2
#> 54 3 Leo degree 2
#> 55 3 Mira degree 0
#> 56 3 Nils degree 1
#> 57 4 Ana degree 1
#> 58 4 Ben degree 4
#> 59 4 Cara degree 5
#> 60 4 Dan degree 1
#> 61 4 Eve degree 1
#> 62 4 Finn degree 2
#> 63 4 Gita degree 0
#> 64 4 Hugo degree 0
#> 65 4 Iris degree 3
#> 66 4 Jonas degree 1
#> 67 4 Kira degree 3
#> 68 4 Leo degree 3
#> 69 4 Mira degree 1
#> 70 4 Nils degree 1
#> 71 5 Ana degree 1
#> 72 5 Ben degree 3
#> 73 5 Cara degree 4
#> 74 5 Dan degree 2
#> 75 5 Eve degree 3
#> 76 5 Finn degree 4
#> 77 5 Gita degree 1
#> 78 5 Hugo degree 1
#> 79 5 Iris degree 2
#> 80 5 Jonas degree 1
#> 81 5 Kira degree 4
#> 82 5 Leo degree 3
#> 83 5 Mira degree 1
#> 84 5 Nils degree 2
#> 85 6 Ana degree 7
#> 86 6 Ben degree 2
#> 87 6 Cara degree 3
#> 88 6 Dan degree 1
#> 89 6 Eve degree 4
#> 90 6 Finn degree 4
#> 91 6 Gita degree 7
#> 92 6 Hugo degree 6
#> 93 6 Iris degree 2
#> 94 6 Jonas degree 4
#> 95 6 Kira degree 6
#> 96 6 Leo degree 5
#> 97 6 Mira degree 3
#> 98 6 Nils degree 4
#> 99 7 Ana degree 6
#> 100 7 Ben degree 3
#> 101 7 Cara degree 2
#> 102 7 Dan degree 1
#> 103 7 Eve degree 2
#> 104 7 Finn degree 1
#> 105 7 Gita degree 2
#> 106 7 Hugo degree 5
#> 107 7 Iris degree 3
#> 108 7 Jonas degree 5
#> 109 7 Kira degree 1
#> 110 7 Leo degree 1
#> 111 7 Mira degree 3
#> 112 7 Nils degree 3
#> 113 8 Ana degree 3
#> 114 8 Ben degree 0
#> 115 8 Cara degree 3
#> 116 8 Dan degree 3
#> 117 8 Eve degree 1
#> 118 8 Finn degree 1
#> 119 8 Gita degree 1
#> 120 8 Hugo degree 5
#> 121 8 Iris degree 1
#> 122 8 Jonas degree 6
#> 123 8 Kira degree 2
#> 124 8 Leo degree 2
#> 125 8 Mira degree 5
#> 126 8 Nils degree 3
#> 127 9 Ana degree 2
#> 128 9 Ben degree 2
#> 129 9 Cara degree 1
#> 130 9 Dan degree 2
#> 131 9 Eve degree 1
#> 132 9 Finn degree 1
#> 133 9 Gita degree 2
#> 134 9 Hugo degree 4
#> 135 9 Iris degree 0
#> 136 9 Jonas degree 5
#> 137 9 Kira degree 4
#> 138 9 Leo degree 1
#> 139 9 Mira degree 1
#> 140 9 Nils degree 6
#> 141 10 Ana degree 3
#> 142 10 Ben degree 2
#> 143 10 Cara degree 3
#> 144 10 Dan degree 1
#> 145 10 Eve degree 1
#> 146 10 Finn degree 2
#> 147 10 Gita degree 4
#> 148 10 Hugo degree 2
#> 149 10 Iris degree 3
#> 150 10 Jonas degree 3
#> 151 10 Kira degree 2
#> 152 10 Leo degree 2
#> 153 10 Mira degree 5
#> 154 10 Nils degree 5
#> 155 11 Ana degree 1
#> 156 11 Ben degree 4
#> 157 11 Cara degree 4
#> 158 11 Dan degree 2
#> 159 11 Eve degree 1
#> 160 11 Finn degree 3
#> 161 11 Gita degree 2
#> 162 11 Hugo degree 1
#> 163 11 Iris degree 4
#> 164 11 Jonas degree 2
#> 165 11 Kira degree 3
#> 166 11 Leo degree 5
#> 167 11 Mira degree 4
#> 168 11 Nils degree 0
#> 169 12 Ana degree 2
#> 170 12 Ben degree 3
#> 171 12 Cara degree 3
#> 172 12 Dan degree 4
#> 173 12 Eve degree 2
#> 174 12 Finn degree 6
#> 175 12 Gita degree 1
#> 176 12 Hugo degree 2
#> 177 12 Iris degree 1
#> 178 12 Jonas degree 3
#> 179 12 Kira degree 1
#> 180 12 Leo degree 3
#> 181 12 Mira degree 4
#> 182 12 Nils degree 1
#> 183 13 Ana degree 5
#> 184 13 Ben degree 3
#> 185 13 Cara degree 4
#> 186 13 Dan degree 5
#> 187 13 Eve degree 6
#> 188 13 Finn degree 4
#> 189 13 Gita degree 4
#> 190 13 Hugo degree 2
#> 191 13 Iris degree 2
#> 192 13 Jonas degree 7
#> 193 13 Kira degree 3
#> 194 13 Leo degree 1
#> 195 13 Mira degree 6
#> 196 13 Nils degree 6
#> 197 14 Ana degree 4
#> 198 14 Ben degree 3
#> 199 14 Cara degree 2
#> 200 14 Dan degree 5
#> 201 14 Eve degree 8
#> 202 14 Finn degree 3
#> 203 14 Gita degree 5
#> 204 14 Hugo degree 6
#> 205 14 Iris degree 3
#> 206 14 Jonas degree 7
#> 207 14 Kira degree 5
#> 208 14 Leo degree 1
#> 209 14 Mira degree 1
#> 210 14 Nils degree 7
#> 211 15 Ana degree 0
#> 212 15 Ben degree 1
#> 213 15 Cara degree 2
#> 214 15 Dan degree 1
#> 215 15 Eve degree 5
#> 216 15 Finn degree 0
#> 217 15 Gita degree 0
#> 218 15 Hugo degree 3
#> 219 15 Iris degree 2
#> 220 15 Jonas degree 2
#> 221 15 Kira degree 2
#> 222 15 Leo degree 1
#> 223 15 Mira degree 1
#> 224 15 Nils degree 0
#> 225 16 Ana degree 0
#> 226 16 Ben degree 2
#> 227 16 Cara degree 2
#> 228 16 Dan degree 1
#> 229 16 Eve degree 0
#> 230 16 Finn degree 4
#> 231 16 Gita degree 1
#> 232 16 Hugo degree 2
#> 233 16 Iris degree 1
#> 234 16 Jonas degree 1
#> 235 16 Kira degree 3
#> 236 16 Leo degree 0
#> 237 16 Mira degree 2
#> 238 16 Nils degree 1
#> 239 17 Ana degree 0
#> 240 17 Ben degree 2
#> 241 17 Cara degree 1
#> 242 17 Dan degree 2
#> 243 17 Eve degree 0
#> 244 17 Finn degree 3
#> 245 17 Gita degree 1
#> 246 17 Hugo degree 1
#> 247 17 Iris degree 1
#> 248 17 Jonas degree 0
#> 249 17 Kira degree 2
#> 250 17 Leo degree 0
#> 251 17 Mira degree 2
#> 252 17 Nils degree 1
#> 253 18 Ana degree 0
#> 254 18 Ben degree 2
#> 255 18 Cara degree 2
#> 256 18 Dan degree 1
#> 257 18 Eve degree 1
#> 258 18 Finn degree 1
#> 259 18 Gita degree 0
#> 260 18 Hugo degree 0
#> 261 18 Iris degree 1
#> 262 18 Jonas degree 2
#> 263 18 Kira degree 1
#> 264 18 Leo degree 1
#> 265 18 Mira degree 2
#> 266 18 Nils degree 0
#> 267 19 Ana degree 3
#> 268 19 Ben degree 2
#> 269 19 Cara degree 2
#> 270 19 Dan degree 1
#> 271 19 Eve degree 0
#> 272 19 Finn degree 0
#> 273 19 Gita degree 1
#> 274 19 Hugo degree 2
#> 275 19 Iris degree 1
#> 276 19 Jonas degree 1
#> 277 19 Kira degree 2
#> 278 19 Leo degree 0
#> 279 19 Mira degree 2
#> 280 19 Nils degree 1
#> 281 20 Ana degree 4
#> 282 20 Ben degree 3
#> 283 20 Cara degree 3
#> 284 20 Dan degree 5
#> 285 20 Eve degree 2
#> 286 20 Finn degree 1
#> 287 20 Gita degree 1
#> 288 20 Hugo degree 3
#> 289 20 Iris degree 1
#> 290 20 Jonas degree 2
#> 291 20 Kira degree 3
#> 292 20 Leo degree 1
#> 293 20 Mira degree 2
#> 294 20 Nils degree 3
#> 295 21 Ana degree 2
#> 296 21 Ben degree 0
#> 297 21 Cara degree 0
#> 298 21 Dan degree 2
#> 299 21 Eve degree 1
#> 300 21 Finn degree 0
#> 301 21 Gita degree 0
#> 302 21 Hugo degree 3
#> 303 21 Iris degree 0
#> 304 21 Jonas degree 0
#> 305 21 Kira degree 2
#> 306 21 Leo degree 1
#> 307 21 Mira degree 0
#> 308 21 Nils degree 1
as.data.frame(degree, layout = "wide")
#> node measure t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17
#> 1 Ana degree 1 0 1 2 1 1 7 6 3 2 3 1 2 5 4 0 0 0
#> 2 Ben degree 1 0 0 2 4 3 2 3 0 2 2 4 3 3 3 1 2 2
#> 3 Cara degree 1 1 1 0 5 4 3 2 3 1 3 4 3 4 2 2 2 1
#> 4 Dan degree 1 1 1 3 1 2 1 1 3 2 1 2 4 5 5 1 1 2
#> 5 Eve degree 2 4 2 3 1 3 4 2 1 1 1 1 2 6 8 5 0 0
#> 6 Finn degree 1 0 1 2 2 4 4 1 1 1 2 3 6 4 3 0 4 3
#> 7 Gita degree 1 1 2 1 0 1 7 2 1 2 4 2 1 4 5 0 1 1
#> 8 Hugo degree 1 0 1 1 0 1 6 5 5 4 2 1 2 2 6 3 2 1
#> 9 Iris degree 2 3 2 1 3 2 2 3 1 0 3 4 1 2 3 2 1 1
#> 10 Jonas degree 2 2 3 4 1 1 4 5 6 5 3 2 3 7 7 2 1 0
#> 11 Kira degree 2 2 3 2 3 4 6 1 2 4 2 3 1 3 5 2 3 2
#> 12 Leo degree 2 0 1 2 3 3 5 1 2 1 2 5 3 1 1 1 0 0
#> 13 Mira degree 3 2 0 0 1 1 3 3 5 1 5 4 4 6 1 1 2 2
#> 14 Nils degree 0 0 2 1 1 2 4 3 3 6 5 0 1 6 7 0 1 1
#> t18 t19 t20 t21
#> 1 0 3 4 2
#> 2 2 2 3 0
#> 3 2 2 3 0
#> 4 1 1 5 2
#> 5 1 0 2 1
#> 6 1 0 1 0
#> 7 0 1 1 0
#> 8 0 2 3 3
#> 9 1 1 1 0
#> 10 2 1 2 0
#> 11 1 2 3 2
#> 12 1 0 1 1
#> 13 2 2 2 0
#> 14 0 1 3 1
as.data.frame(degree, top = 5)
#> time node measure value
#> 1 0 Jonas degree 2
#> 2 1 Jonas degree 2
#> 3 2 Jonas degree 3
#> 4 3 Jonas degree 4
#> 5 4 Jonas degree 1
#> 6 5 Jonas degree 1
#> 7 6 Jonas degree 4
#> 8 7 Jonas degree 5
#> 9 8 Jonas degree 6
#> 10 9 Jonas degree 5
#> 11 10 Jonas degree 3
#> 12 11 Jonas degree 2
#> 13 12 Jonas degree 3
#> 14 13 Jonas degree 7
#> 15 14 Jonas degree 7
#> 16 15 Jonas degree 2
#> 17 16 Jonas degree 1
#> 18 17 Jonas degree 0
#> 19 18 Jonas degree 2
#> 20 19 Jonas degree 1
#> 21 20 Jonas degree 2
#> 22 21 Jonas degree 0
#> 23 0 Kira degree 2
#> 24 1 Kira degree 2
#> 25 2 Kira degree 3
#> 26 3 Kira degree 2
#> 27 4 Kira degree 3
#> 28 5 Kira degree 4
#> 29 6 Kira degree 6
#> 30 7 Kira degree 1
#> 31 8 Kira degree 2
#> 32 9 Kira degree 4
#> 33 10 Kira degree 2
#> 34 11 Kira degree 3
#> 35 12 Kira degree 1
#> 36 13 Kira degree 3
#> 37 14 Kira degree 5
#> 38 15 Kira degree 2
#> 39 16 Kira degree 3
#> 40 17 Kira degree 2
#> 41 18 Kira degree 1
#> 42 19 Kira degree 2
#> 43 20 Kira degree 3
#> 44 21 Kira degree 2
#> 45 0 Hugo degree 1
#> 46 1 Hugo degree 0
#> 47 2 Hugo degree 1
#> 48 3 Hugo degree 1
#> 49 4 Hugo degree 0
#> 50 5 Hugo degree 1
#> 51 6 Hugo degree 6
#> 52 7 Hugo degree 5
#> 53 8 Hugo degree 5
#> 54 9 Hugo degree 4
#> 55 10 Hugo degree 2
#> 56 11 Hugo degree 1
#> 57 12 Hugo degree 2
#> 58 13 Hugo degree 2
#> 59 14 Hugo degree 6
#> 60 15 Hugo degree 3
#> 61 16 Hugo degree 2
#> 62 17 Hugo degree 1
#> 63 18 Hugo degree 0
#> 64 19 Hugo degree 2
#> 65 20 Hugo degree 3
#> 66 21 Hugo degree 3
#> 67 0 Eve degree 2
#> 68 1 Eve degree 4
#> 69 2 Eve degree 2
#> 70 3 Eve degree 3
#> 71 4 Eve degree 1
#> 72 5 Eve degree 3
#> 73 6 Eve degree 4
#> 74 7 Eve degree 2
#> 75 8 Eve degree 1
#> 76 9 Eve degree 1
#> 77 10 Eve degree 1
#> 78 11 Eve degree 1
#> 79 12 Eve degree 2
#> 80 13 Eve degree 6
#> 81 14 Eve degree 8
#> 82 15 Eve degree 5
#> 83 16 Eve degree 0
#> 84 17 Eve degree 0
#> 85 18 Eve degree 1
#> 86 19 Eve degree 0
#> 87 20 Eve degree 2
#> 88 21 Eve degree 1
#> 89 0 Mira degree 3
#> 90 1 Mira degree 2
#> 91 2 Mira degree 0
#> 92 3 Mira degree 0
#> 93 4 Mira degree 1
#> 94 5 Mira degree 1
#> 95 6 Mira degree 3
#> 96 7 Mira degree 3
#> 97 8 Mira degree 5
#> 98 9 Mira degree 1
#> 99 10 Mira degree 5
#> 100 11 Mira degree 4
#> 101 12 Mira degree 4
#> 102 13 Mira degree 6
#> 103 14 Mira degree 1
#> 104 15 Mira degree 1
#> 105 16 Mira degree 2
#> 106 17 Mira degree 2
#> 107 18 Mira degree 2
#> 108 19 Mira degree 2
#> 109 20 Mira degree 2
#> 110 21 Mira degree 0
as.data.frame(degree, what = "diagnostics")
#> [1] session time stage
#> [4] status reason iterations
#> [7] residual balance_status balance_reason
#> [10] balance_iterations balance_residual spectral_radius
#> [13] eigenspace_dimension eigen_residual
#> <0 rows> (or 0-length row.names)