@@ -209,15 +209,13 @@ summary.diffnet <- function(
209
209
# Computing density
210
210
d <- unlist(lapply(object $ graph [slices ], function (x ) {
211
211
nlinks(x )/ nnodes(x )/ (nnodes(x )- 1 )
212
- # nelements <- length(x@x)
213
- # x <-nelements/(meta$n * (meta$n-1))
214
212
}))
215
213
216
214
# identify single-diff from multi-diff
217
215
single <- ! inherits(object $ cumadopt , " list" )
218
216
219
- # Computing moran's I
220
217
if (single ) {
218
+ # Computing moran's I
221
219
if (! skip.moran ) {
222
220
m <- matrix (NA , nrow = length(slices ), ncol = 4 ,
223
221
dimnames = list (NULL , c(" moran_obs" , " moran_exp" , " moran_sd" , " moran_pval" )))
@@ -230,6 +228,7 @@ summary.diffnet <- function(
230
228
231
229
m [i ,] <- unlist(moran(object $ cumadopt [,slices [i ]], g ))
232
230
}
231
+ }
233
232
234
233
# Computing new adopters, cumadopt and hazard rate
235
234
ad <- colSums(object $ adopt [,slices ,drop = FALSE ])
@@ -253,13 +252,16 @@ summary.diffnet <- function(
253
252
}
254
253
255
254
if (no.print ) return (out )
256
- }
257
255
258
256
} else {
259
- if (! skip.moran ) {
260
- out_list <- list ()
261
- data_beh_list <- list ()
262
- for (q in 1 : length(object $ cumadopt )) {
257
+
258
+ out_list <- list ()
259
+ data_beh_list <- list ()
260
+
261
+ for (q in 1 : length(object $ cumadopt )) {
262
+
263
+ if (! skip.moran ) {
264
+ # for (q in 1:length(object$cumadopt)) {
263
265
m <- matrix (NA , nrow = length(slices ), ncol = 4 ,
264
266
dimnames = list (NULL , c(" moran_obs" , " moran_exp" , " moran_sd" , " moran_pval" )))
265
267
@@ -270,42 +272,42 @@ summary.diffnet <- function(
270
272
271
273
m [i ,] <- unlist(moran(object $ cumadopt [[q ]][,slices [i ]], g ))
272
274
}
275
+ # }
276
+ }
273
277
274
- # Computing new adopters, cumadopt and hazard rate
275
- ad <- colSums(object $ adopt [[q ]][,slices ,drop = FALSE ])
276
- ca <- t(cumulative_adopt_count(object $ cumadopt [[q ]]))[slices ,- 3 , drop = FALSE ]
277
- hr <- t(hazard_rate(object $ cumadopt [[q ]], no.plot = TRUE ))[slices ,,drop = FALSE ]
278
-
279
- # Left censoring
280
- lc <- sum(object $ toa [,q ] == meta $ pers [1 ], na.rm = TRUE )
281
- rc <- sum(is.na(object $ toa [,q ]), na.rm = TRUE )
282
-
283
- # data_beh_list[[q]] <- list(ad, ca, hr, lc, rc)
278
+ # Computing new adopters, cumadopt and hazard rate
279
+ ad <- colSums(object $ adopt [[q ]][,slices ,drop = FALSE ])
280
+ ca <- t(cumulative_adopt_count(object $ cumadopt [[q ]]))[slices ,- 3 , drop = FALSE ]
281
+ hr <- t(hazard_rate(object $ cumadopt [[q ]], no.plot = TRUE ))[slices ,,drop = FALSE ]
284
282
285
- out <- data.frame (
286
- adopt = ad ,
287
- cum_adopt = ca [,1 ],
288
- cum_adopt_pcent = ca [,2 ],
289
- hazard = hr ,
290
- density = d
291
- )
283
+ # Left censoring
284
+ lc <- sum(object $ toa [,q ] == meta $ pers [1 ], na.rm = TRUE )
285
+ rc <- sum(is.na(object $ toa [,q ]), na.rm = TRUE )
292
286
293
- if (! skip.moran ) {
294
- out <- cbind(out , m )
295
- }
287
+ data_beh_list [[q ]] <- c(lc , rc )
296
288
297
- if (no.print ) return (out )
289
+ out <- data.frame (
290
+ adopt = ad ,
291
+ cum_adopt = ca [,1 ],
292
+ cum_adopt_pcent = ca [,2 ],
293
+ hazard = hr ,
294
+ density = d
295
+ )
298
296
299
- out_list [[q ]] <- out
297
+ if (! skip.moran ) {
298
+ out <- cbind(out , m )
300
299
}
300
+
301
+ out_list [[q ]] <- out
301
302
}
303
+
304
+ if (no.print ) return (out_list )
302
305
}
303
306
304
307
# Function to print data.frames differently
305
308
header <- c(" Period " ," Adopters " ," Cum Adopt. (%) " ,
306
309
" Hazard Rate " ," Density " ,
307
- if (! skip.moran ) c(" Moran's I (sd) " ) else NULL
308
- )
310
+ if (! skip.moran ) c(" Moran's I (sd) " ) else NULL )
309
311
310
312
slen <- nchar(header )
311
313
hline <- paste(sapply(sapply(slen , rep.int , x = " -" ), paste0 , collapse = " " ),
@@ -315,27 +317,34 @@ summary.diffnet <- function(
315
317
# Quick Formatting function
316
318
qf <- function (x , digits = 2 ) sprintf(paste0(" %." ,digits ," f" ), x )
317
319
320
+ # Start printing result
318
321
cat(" Diffusion network summary statistics\n " ,
319
- " Name : " , meta $ name , " \n " ,
320
- " Behavior : " , meta $ behavior , " \n " ,
321
- rule ," \n " ,sep = " " )
322
- cat(header ," \n " )
323
- cat(hline , " \n " )
322
+ " Name : " , meta $ name , " \n " )
324
323
325
324
if (single ) {
325
+ cat(" Behavior : " , meta $ behavior , " \n " ,
326
+ rule ," \n " ,sep = " " )
327
+ cat(header ," \n " )
328
+ cat(hline , " \n " )
326
329
summary_diffnet_out_display(out , slen , meta , slices , qf , skip.moran )
330
+ cat(rule , " \n " ,
331
+ paste(" Left censoring :" , sprintf(" %3.2f (%d)" , lc / meta $ n , lc )), " \n " ,
332
+ paste(" Right centoring :" , sprintf(" %3.2f (%d)" , rc / meta $ n , rc )), " \n " )
327
333
} else {
334
+ beh_names <- strsplit(meta $ behavior , " , " )[[1 ]]
328
335
for (q in 1 : length(object $ cumadopt )) {
336
+ cat(" \n Behavior : " , beh_names [q ], " \n " ,
337
+ rule ," \n " ,sep = " " )
338
+ cat(header ," \n " )
339
+ cat(hline , " \n " )
329
340
summary_diffnet_out_display(out_list [[q ]], slen , meta , slices , qf , skip.moran )
341
+ cat(rule , " \n " ,
342
+ paste(" Left censoring :" , sprintf(" %3.2f (%d)" , lc / meta $ n , data_beh_list [[q ]][1 ])), " \n " ,
343
+ paste(" Right centoring :" , sprintf(" %3.2f (%d)" , rc / meta $ n , data_beh_list [[q ]][2 ])), " \n " )
330
344
}
331
345
}
332
346
333
- # print(out, digits=2)
334
-
335
347
cat(
336
- rule ,
337
- paste(" Left censoring :" , sprintf(" %3.2f (%d)" , lc / meta $ n , lc )),
338
- paste(" Right centoring :" , sprintf(" %3.2f (%d)" , rc / meta $ n , rc )),
339
348
paste(" # of nodes :" , sprintf(" %d" ,meta $ n )),
340
349
" \n Moran's I was computed on contemporaneous autocorrelation using 1/geodesic" ,
341
350
" values. Significane levels *** <= .01, ** <= .05, * <= .1." ,
0 commit comments