This function is basically the same as the biblio_coupling() function but it is explicitly framed for bibliographic co-citation network (and not for bibliographic coupling networks). It takes a data frame with direct citations, and calculates the number of times two references are citing together, and calculate a measure similar to the coupling angle value (Sen and Gan 1983) : it divides the number of times two references are cited together by the square root of the product of the total number of citations (in the whole corpus) of each reference. The more two references are cited in general, the more they have to be cited together for their link to be important.

biblio_cocitation(
  dt,
  source,
  ref,
  normalized_weight_only = TRUE,
  weight_threshold = 1,
  output_in_character = TRUE
)

Arguments

dt

The dataframe with citing and cited documents.

source

The column name of the source identifiers, that is the documents that are citing.

ref

The column name of the cited references identifiers. In co-citation network, these references are the nodes of the network.

normalized_weight_only

If set to FALSE, the function returns the weights normalized by the cosine measure, but also simply the number of times two references are cited together.

weight_threshold

Correspond to the value of the non-normalized weights of edges. The function just keeps the edges that have a non-normalized weight superior to the weight_threshold. In a large bibliographic co-citation network, you can consider for instance that being cited only once together is not sufficient/significant for two references to be linked together. This parameter could also be modified to avoid creating intractable networks with too many edges.

output_in_character

If TRUE, the function ends by transforming the from and to columns in character, to make the creation of a tidygraph graph easier.

Value

A data.table with the articles (or authors) identifier in from and to columns, with one or two additional columns (the coupling angle measure and the number of shared references). It also keeps a copy of from and to in the Source and Target columns. This is useful is you are using the tidygraph package then, where from and to values are modified when creating a graph.

Details

This function uses data.table package and is thus very fast. It allows the user to compute the coupling angle on a very large data frame quickly.

References

Sen SK, Gan SK (1983). “A Mathematical Extension of the Idea of Bibliographic Coupling and Its Applications.” Annals of library science and documentation, 30(2). http://nopr.niscair.res.in/bitstream/123456789/28008/1/ALIS%2030(2)%2078-82.pdf.

Examples

library(biblionetwork) biblio_cocitation(Ref_stagflation, source = "Citing_ItemID_Ref", ref = "ItemID_Ref")
#> from to weight Source Target #> 1: 49248 180162 1.0000000 49248 180162 #> 2: 49248 804988 0.3162278 49248 804988 #> 3: 49248 1999903 1.0000000 49248 1999903 #> 4: 49248 2031010 1.0000000 49248 2031010 #> 5: 49248 3580645 0.7071068 49248 3580645 #> --- #> 87664: 1111112223 1111112225 1.0000000 1111112223 1111112225 #> 87665: 1111112223 1111112227 1.0000000 1111112223 1111112227 #> 87666: 1111112224 1111112225 1.0000000 1111112224 1111112225 #> 87667: 1111112224 1111112227 1.0000000 1111112224 1111112227 #> 87668: 1111112225 1111112227 1.0000000 1111112225 1111112227
# It is basically the same as: biblio_coupling(Ref_stagflation, source = "ItemID_Ref", ref = "Citing_ItemID_Ref")
#> from to weight Source Target #> 1: 49248 180162 1.0000000 49248 180162 #> 2: 49248 804988 0.3162278 49248 804988 #> 3: 49248 1999903 1.0000000 49248 1999903 #> 4: 49248 2031010 1.0000000 49248 2031010 #> 5: 49248 3580645 0.7071068 49248 3580645 #> --- #> 87664: 1111112223 1111112225 1.0000000 1111112223 1111112225 #> 87665: 1111112223 1111112227 1.0000000 1111112223 1111112227 #> 87666: 1111112224 1111112225 1.0000000 1111112224 1111112225 #> 87667: 1111112224 1111112227 1.0000000 1111112224 1111112227 #> 87668: 1111112225 1111112227 1.0000000 1111112225 1111112227