From bdb00c2c944a577e92db3e58368b49ab14860d6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Juli=C3=A1n=20Merelo-Guerv=C3=B3s?= Date: Sun, 28 May 2023 09:50:02 +0000 Subject: [PATCH] version 0.3.0 --- DESCRIPTION | 6 +- MD5 | 48 ++- NEWS.md | 9 + R/marriage.graph.R | 11 +- README.md | 1 + build/partial.rdb | Bin 5416 -> 6527 bytes build/vignette.rds | Bin 320 -> 361 bytes data/doge.families.rda | Bin 0 -> 568 bytes data/doges.marriages.rda | Bin 0 -> 1569 bytes data/doges.rda | Bin 5224 -> 5267 bytes data/families.rda | Bin 2163 -> 2123 bytes inst/doc/counting-doge-families.R | 19 + inst/doc/counting-doge-families.Rmd | 59 +++ inst/doc/counting-doge-families.html | 586 +++++++++++++++++++++++++++ inst/doc/doges-family-types.Rmd | 4 +- inst/doc/doges-family-types.html | 170 ++++---- inst/doc/doges-social-network.R | 4 +- inst/doc/doges-social-network.Rmd | 13 +- inst/doc/doges-social-network.html | 52 ++- inst/doc/doges-terms.html | 23 +- inst/doges.bib | 15 + man/doge.families.Rd | 29 ++ man/doges.marriages.Rd | 41 ++ man/families.Rd | 2 +- man/marriage.graph.Rd | 4 +- tests/testthat/test-dogesdata.R | 2 +- vignettes/counting-doge-families.Rmd | 59 +++ vignettes/doges-family-types.Rmd | 4 +- vignettes/doges-social-network.Rmd | 13 +- 29 files changed, 991 insertions(+), 183 deletions(-) create mode 100644 data/doge.families.rda create mode 100644 data/doges.marriages.rda create mode 100644 inst/doc/counting-doge-families.R create mode 100644 inst/doc/counting-doge-families.Rmd create mode 100644 inst/doc/counting-doge-families.html create mode 100644 man/doge.families.Rd create mode 100644 man/doges.marriages.Rd create mode 100644 vignettes/counting-doge-families.Rmd diff --git a/DESCRIPTION b/DESCRIPTION index 3681439..6e9f161 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Package: dogesr Type: Package Title: Work with the Doges/Dogaresse Dataset -Version: 0.2.0 +Version: 0.3.0 Author: Juan Julián Merelo-Guervós Maintainer: Juan Julián Merelo-Guervós Description: Work with data on Venetian doges and dogaresse and the noble families of the Republic of Venice, and use it for social network analysis, as used in Merelo (2022) . @@ -16,6 +16,6 @@ VignetteBuilder: knitr RdMacros: Rdpack RoxygenNote: 7.2.1 NeedsCompilation: no -Packaged: 2023-02-21 08:44:14 UTC; jmerelo +Packaged: 2023-05-28 10:35:59 UTC; jmerelo Repository: CRAN -Date/Publication: 2023-02-21 09:10:02 UTC +Date/Publication: 2023-05-28 10:50:02 UTC diff --git a/MD5 b/MD5 index 8495ff5..57bc5b8 100644 --- a/MD5 +++ b/MD5 @@ -1,34 +1,42 @@ -09c76369df60c053a6b7a34fef5e6ea4 *DESCRIPTION +6e04fbea60d96929662d726108dd4e21 *DESCRIPTION c983aa75df1f15c8a7a830fe096c224e *NAMESPACE -4d210d3dfd917612537f3adaedf9e7ee *NEWS.md +d92efb0a4090c7c81fb6898590f9b5ed *NEWS.md 5ca494860f345762e5ca20ebc046b926 *R/doges.R f36ed16094b6087ce0479669daab0694 *R/doges.years.R caa74c35eb1f53d4fd4fd235b8b02b30 *R/families.R -0206a912449d28e39501eb1d77974c4d *R/marriage.graph.R -c2dbeb1f0a8a69cc60564b35b2a2d02c *README.md -5dedc14606aa4e8f14e2ee3bbfb64ae2 *build/partial.rdb -bd1ee56536dd7dec8078b5048c9edea9 *build/vignette.rds -67b3cfeb314105f9cac8d3676e2e06ae *data/doges.rda -67937fef1a08fe9eeb3a1580facdba59 *data/families.rda +3a1c03bd199b898a984b8de910f92452 *R/marriage.graph.R +ef265897a607ae18c2547f4981f28a6c *README.md +29fe6fd08c57f358097aecf63ff18023 *build/partial.rdb +6d2a9c08ed7c19c3e1dc7d393c2c04d9 *build/vignette.rds +7e95790fa128a88770ca99dac476046f *data/doge.families.rda +0dfdd32a261427efce1497ff43c50bf8 *data/doges.marriages.rda +883614ca55eff4644a3e40dbe24cdef4 *data/doges.rda +6c21d60801f2ba759fc31d6489113df3 *data/families.rda 10aa16960c1b73d31f5227da9730ba02 *inst/REFERENCES.bib +6a25bdc08e78429c8909e1de9cad3026 *inst/doc/counting-doge-families.R +5a2585a9407c1f9fad2a9a5f146d1dd5 *inst/doc/counting-doge-families.Rmd +36d13ff711cec3c5f417aa7453eb1660 *inst/doc/counting-doge-families.html 350f5d9a9e0a5eb5a30348ae7696ae27 *inst/doc/doges-family-types.R -bc6d9fb7710e50f258fe426e01a9cd67 *inst/doc/doges-family-types.Rmd -149eac7af8f8a7808cfa732db84fb126 *inst/doc/doges-family-types.html -e04ec7a39c864f45c1912fd193b0f16a *inst/doc/doges-social-network.R -6814fabd29b861e5330444dd52ed85d0 *inst/doc/doges-social-network.Rmd -a85bd62bfd853c29092faca35ba658bb *inst/doc/doges-social-network.html +9f3f78c5216d6c37e9a2857b4ce799c1 *inst/doc/doges-family-types.Rmd +77fb6d71781b0e1428c78d77aa1e76c5 *inst/doc/doges-family-types.html +00e7cf8fdf6c27b11130a10fd93706be *inst/doc/doges-social-network.R +10fc93d4697d24d9673bdf82069d7b4f *inst/doc/doges-social-network.Rmd +4380da2f12bc7732609c4d9074db07b5 *inst/doc/doges-social-network.html 61862bef8c7d863295e3e6c0624aacd5 *inst/doc/doges-terms.R 9e70d0db982fe1ed4ee311fd75e0ea0e *inst/doc/doges-terms.Rmd -79d567c01df02d0b83961df3632019d7 *inst/doc/doges-terms.html -319729ac9e53ca644341d2e0644e40cf *inst/doges.bib +fbc534a28aac08b7b19fb24dc2818211 *inst/doc/doges-terms.html +3c1b99fa60e54953f433b178b7d87f91 *inst/doges.bib +67c172b488abd266e3c350306e43fd46 *man/doge.families.Rd 0e184505f55c8dc69ddc12ca4f08c665 *man/doges.Rd +5041838acbb727af7fc3591935f9e297 *man/doges.marriages.Rd eb1370e88a84f107ae159e449e235c6b *man/doges.years.Rd -679c47efb6855c10052126a93203c752 *man/families.Rd -5f1068419878cbb4b2e0692c89b37ece *man/marriage.graph.Rd +f214f1277343c214e61f1b117a39115e *man/families.Rd +cc0c8409c340c8b5efce90c8bad3d62b *man/marriage.graph.Rd 1d971f3ebe61e9a030d862e2a0eb2c63 *tests/testthat.R -452c839858b824eeb76eadb1547abd01 *tests/testthat/test-dogesdata.R +9649b861ab1a5f3b92b303511e558ddf *tests/testthat/test-dogesdata.R 1c7c606abf4483566e42485c77687f41 *tests/testthat/test-dogesyearsdata.R a858fa0b763bc9da841c99e54aba72b2 *tests/testthat/test-marriagegraph.R -bc6d9fb7710e50f258fe426e01a9cd67 *vignettes/doges-family-types.Rmd -6814fabd29b861e5330444dd52ed85d0 *vignettes/doges-social-network.Rmd +5a2585a9407c1f9fad2a9a5f146d1dd5 *vignettes/counting-doge-families.Rmd +9f3f78c5216d6c37e9a2857b4ce799c1 *vignettes/doges-family-types.Rmd +10fc93d4697d24d9673bdf82069d7b4f *vignettes/doges-social-network.Rmd 9e70d0db982fe1ed4ee311fd75e0ea0e *vignettes/doges-terms.Rmd diff --git a/NEWS.md b/NEWS.md index 68c3f8d..264ff81 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,3 +1,12 @@ +# doges 0.3.0 + +Fixes: +* Improves documentation, some errors in code, grammar fixes +* Adds family to the two doges that didn't have one. Used the name of the doge. + +Changes: +* Adds `doge.families` which is a table of all families that had a doge, and how many doges there were. + # dogesr 0.2.0 Fixes: diff --git a/R/marriage.graph.R b/R/marriage.graph.R index 5777b25..8460dd2 100644 --- a/R/marriage.graph.R +++ b/R/marriage.graph.R @@ -1,5 +1,4 @@ -globalVariables(c("data.doges")) -library(igraph) +globalVariables(c("doges.marriages.sn")) #' Convert doges data into a social graph #' @@ -9,11 +8,5 @@ library(igraph) # marriage.graph <- function() { - doges.marriages.df <- data.frame(data.doges$Family.doge,data.doges$Family.dogaressa) - doges.marriages.df <- doges.marriages.df[ (doges.marriages.df$data.doges.Family.doge != '' ) & (doges.marriages.df$data.doges.Family.dogaressa != ''),] - doges.mothers.df <- data.frame(data.doges$Family.doge,data.doges$Family.mother) - doges.mothers.df <- doges.mothers.df[ (doges.mothers.df$data.doges.Family.doge != '' ) & (doges.mothers.df$data.doges.Family.mother != ''),] - all.links <- data.frame(doge.or.father = c(doges.marriages.df$data.doges.Family.doge,doges.mothers.df$data.doges.Family.doge), - dogaressa.or.mother = c(doges.marriages.df$data.doges.Family.dogaressa,doges.mothers.df$data.doges.Family.mother)) - return(graph.data.frame(all.links,directed=F)) + return(doges.marriages.sn) } diff --git a/README.md b/README.md index 2057e9b..c9517c8 100644 --- a/README.md +++ b/README.md @@ -46,6 +46,7 @@ This package includes a couple of vignettes. Once installed, write `vignette("do * `vignette("doges-family-types")` for how to use the family types data set * `vignette("doges-terms")` to analyze the amount of time the doges lived/ruled using data provided in this package. * `vignette("doges-social-network")` to get the marriage social network of doges and parents, and make some initial exploration. +* `vignette("counting-doge-families")` to work with a table of the families doges belonged to and how many times they actually "made doge" ## Work with data diff --git a/build/partial.rdb b/build/partial.rdb index c72611cf7a500ebcaa3c2d28f51a3972c772eb08..8f1eee6e10964139ec1812f1f6144922812346c9 100644 GIT binary patch literal 6527 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 diff --git a/build/vignette.rds b/build/vignette.rds index 51b7c99652dae631901520f41dbb4521d6b35036..be79554f12ca535eef5536d2627585270c880f68 100644 GIT binary patch literal 361 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 TGN+44c$o4RHjZ*` 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 Z*Z-N>XKuv8 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 delta 2108 zcmV-C2*dZw5c3d!ABzY80000000Zq>&5k3t5tcn_bxWE>4BNR2$T_*>lB<4Jx=6FK zq$q}R2&isO4*@nQv%8g8C%=Xt#b>{XAHa`bZ`B5 z;?8RFD!XGd@hC=M7bss<=J*P@Y65?_4RZ zZp{0oaFt5cL7eEFjT4#WYi^v{*Wsh_2*c8aJ&iPPm30D(i z>x^{GY7-oZHWW{VRG`_{a>b%g_N=voROo zfH0IkWsGAZC;{Jp8zJ20G} zBTS_WaqK>)2xY8)Kq;C`J>4+J&HQqBKuLv+G!)sHD11f+=gpo}$urIxo{l9q>ynuX z^6^w#N}Rd%3)ATrf&pxSnxG}#r%~E}L%a|tQ3x`n$?1fkFP1C|1}AVQYKLKChUy3m zTU9iMorXMK)Pk1mF8sML8scUhx*gUYxJE~*7r6|9uK}$q^ zOIZrWI-X>jmAgwI!n+_WwPYb)I$1Dx^}nbUD%R1XnP@k640&s*k6|ZkS*S{XGR)vf zDN&~hHSt;@Smg3`MP#3>E9*3oTi4r$L9Vl|9o4^NBQ!70-7WCvSm-<3a|LZawN=b1 zTOgN8)fV($hw2b*tv)md?(9TPLow=9%Dj0t9l*)PD^^%`;CrHvT}|np3{#7ll>WmU zjt^)6@fjO7*c*c=d~O9_oy!}4dCFHI#i9zJpP@$McwehfJv*!VM6QWpop`DCM>tWT zvfj@DUhxJN<1O&N&)%P7`1hE)Jy(_`q$?l{UQM2>Xvf1W<5H4W!56;kk814DK#PSk z1lG3zQ`OiVus)?zG?7HK37ECy^?;M)OQyOekYp(iB2}m6E3f3w`xya$TxK>z0(DEe zT+y}xXcn0<;7+INkG*Sk!So2qgv)9oyqRz(&aBE|JcMShP{J5&qPaDs05~0Tc8VTk z9zF;vqJ)Enu7i)?C#E+`B`aqKOKDDFi=2QuE3SK9^1=N^Y-)~rPkqL{r@Fxy3~&m6q!4@g!r(Tq z({KpzG@!`0v49HaF@wAbQ0^^!%gT4%S>T*0Q!RY(bF?A?aT%c38~B2OvekST=^g&* zAbAHhvuFCtv)ZE|>ACd9r1{1Yo|DwOEve|l`2EQGgq0`{Va=5nICK=$qdkS=S8E?> zUmULv-(UOUTH;~wUb41-8SgSXC|#9$T`xo%K``@Tq4230R@%ZV!@q_8xWAP^2ndkA z57FSoWplhgsSGqi#a&Qu(1?ahM*L<6H2Od^&YyV=URcTz5|hvmjG$xR3h%=x8ekoa zyIrWF&=OzOD9OZ9=&3X{i6hUOETEvJlOjYWXIdf&`x#0&ipBtcS?qU<`V>klC=2s` zj*xmIcfP`46omo??iECdAfbu_e0%{y!+9NaU;K6SHC`_ghxsfgVv5I>?SuLWz~K@8f1uG!42_Vg4iht--F@8*hK3YbU790*loSk-OvluGNT zmsGs?ck2HjC@>d)M!0((Y{@G?f9VIoM3iPw`v;zM(v|F*Yz2m7?vGd3+HB=ZJk!w8 ziWj?;_0pm-+bc_qzxLN}&AfH$;Iu#qXagh_p=5oyq9Mr1tCUTUXx2a#HA`IAE6zrvr8wM>^vJbx>hQv2ytO)j&%4D)LV1?wmc{(#AgXd>Upa~v2 mhjQny0|HQ?->)veybrQ42$ABI|K*SRe)>Ci)qyrxC;$LQP!UT2 diff --git a/inst/doc/counting-doge-families.R b/inst/doc/counting-doge-families.R new file mode 100644 index 0000000..45a0c22 --- /dev/null +++ b/inst/doc/counting-doge-families.R @@ -0,0 +1,19 @@ +## ----setup, include = FALSE--------------------------------------------------- +knitr::opts_chunk$set( + collapse = TRUE, + comment = "#>" +) + +## ----load,warning=FALSE,message=FALSE----------------------------------------- +# library("dogesr") # If you have already installed this package +devtools::load_all(".") # Comment this, uncomment above if you have installed this package +data("doge.families") + +## ----table-------------------------------------------------------------------- +knitr::kable(head(doge.families[order(-doge.families$n),],n=10),row.names=F,col.names=c("Doge family","Number of doges")) + +## ----family types------------------------------------------------------------- +data("families") +doge.families$type <- unname(family.types[doge.families$Family.doge]) +knitr::kable(head(doge.families[order(-doge.families$n),],n=20) %>% select(1,3),row.names=F,col.names=c("Doge family","Family type")) + diff --git a/inst/doc/counting-doge-families.Rmd b/inst/doc/counting-doge-families.Rmd new file mode 100644 index 0000000..95a3300 --- /dev/null +++ b/inst/doc/counting-doge-families.Rmd @@ -0,0 +1,59 @@ +--- +title: "Using `dogesr` to find out about the doges families" +author: "JJ Merelo" +date: "`r Sys.Date()`" +output: rmarkdown::html_vignette +vignette: > + %\VignetteIndexEntry{Using `dogesr` to find out about the doges families} + %\VignetteEngine{knitr::rmarkdown} + %\VignetteEncoding{UTF-8} +bibliography: ../inst/doges.bib +--- + +```{r setup, include = FALSE} +knitr::opts_chunk$set( + collapse = TRUE, + comment = "#>" +) +``` + +## Introduction + +Only men belonging to one of the Venetian noble families could actually become doge after the *Serrata*; however, even if the number of noble families was initially small, it was eventually expanded to include several hundred noble families [@lane2019enlargement]. Not all of them, however, were able to include one of their own in the list of doges; on the other hand, the same serrata brought about informal mechanisms that guaranteed a fast turnover in the job of doge, so that many families would get the chance [@histories:jj] + +Using data from `dogesr` [@dogesr], we will, in this vignette, have a look at these families, who they were, and how many of them were there. + +## Set up + +We load the dataset needed, called `doge.families`. + +```{r load,warning=FALSE,message=FALSE} +# library("dogesr") # If you have already installed this package +devtools::load_all(".") # Comment this, uncomment above if you have installed this package +data("doge.families") +``` + +This will import the data from the `dogesr` package into the `doge.families` *tibble*. + +## Ranking families + +Here's the ranking of the families with the highest number of doges; the Contarinis and Morosinis, right on top. + +```{r table} +knitr::kable(head(doge.families[order(-doge.families$n),],n=10),row.names=F,col.names=c("Doge family","Number of doges")) +``` + + +Which types of families are these? We can use data from the rest of the packages to find out: + +```{r family types} +data("families") +doge.families$type <- unname(family.types[doge.families$Family.doge]) +knitr::kable(head(doge.families[order(-doge.families$n),],n=20) %>% select(1,3),row.names=F,col.names=c("Doge family","Family type")) +``` + +## Conclusions + +Having a list of doges' family names is convenient and allows you to create visualizations and perform analysis easily, combining it with other datasets. + +## References diff --git a/inst/doc/counting-doge-families.html b/inst/doc/counting-doge-families.html new file mode 100644 index 0000000..f3ffe8f --- /dev/null +++ b/inst/doc/counting-doge-families.html @@ -0,0 +1,586 @@ + + + + + + + + + + + + + + + + +Using dogesr to find out about the doges families + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Using dogesr to find out about +the doges families

+

JJ Merelo

+

2023-05-28

+ + + +
+

Introduction

+

Only men belonging to one of the Venetian noble families could +actually become doge after the Serrata; however, even if the +number of noble families was initially small, it was eventually expanded +to include several hundred noble families (Lane +2019). Not all of them, however, were able to include one of +their own in the list of doges; on the other hand, the same serrata +brought about informal mechanisms that guaranteed a fast turnover in the +job of doge, so that many families would get the chance (Merelo 2023)

+

Using data from dogesr (Merelo-Guervós 2022), we will, in this +vignette, have a look at these families, who they were, and how many of +them were there.

+
+
+

Set up

+

We load the dataset needed, called doge.families.

+
# library("dogesr") # If you have already installed this package
+devtools::load_all(".") # Comment this, uncomment above if you have installed this package
+data("doge.families")
+

This will import the data from the dogesr package into +the doge.families tibble.

+
+
+

Ranking families

+

Here’s the ranking of the families with the highest number of doges; +the Contarinis and Morosinis, right on top.

+
knitr::kable(head(doge.families[order(-doge.families$n),],n=10),row.names=F,col.names=c("Doge family","Number of doges"))
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Doge familyNumber of doges
Contarini8
Mocenigo8
Participazio7
Candiano6
Dandolo5
Gradenigo5
Corner4
Donato4
Faliero4
Loredan4
+

Which types of families are these? We can use data from the rest of +the packages to find out:

+
data("families")
+doge.families$type <- unname(family.types[doge.families$Family.doge])
+knitr::kable(head(doge.families[order(-doge.families$n),],n=20) %>% select(1,3),row.names=F,col.names=c("Doge family","Family type"))
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Doge familyFamily type
ContariniApostoliche
MocenigoDucali
ParticipazioEstinte
CandianoEstinte
DandoloApostoliche
GradenigoApostoliche
CornerEvangeliche
DonatoDucali
FalieroApostoliche
LoredanDucali
MorosiniApostoliche
TiepoloApostoliche
GrimaniDucali
MichielApostoliche
OrseoloEstinte
PriuliDucali
VenierDucali
BarbarigoDucali
FoscariDucali
GalbaioEstinte
+
+
+

Conclusions

+

Having a list of doges’ family names is convenient and allows you to +create visualizations and perform analysis easily, combining it with +other datasets.

+
+
+

References

+
+
+Lane, Frederic C. 2019. “The Enlargement of the Great Council of +Venice.” In Florilegium Historiale, 236–74. University +of Toronto Press. +
+
+Merelo, Juan J. 2023. “It’s a Doge’s Life: Examining Term Limits +in Venetian Doges’ Life Tenure.” Histories +3 (1): 21–31. https://doi.org/10.3390/histories3010003. +
+
+Merelo-Guervós, J. J. 2022. “What Is a Good Doge? +Analyzing the Patrician Social Network of the Republic of Venice.” arXiv. https://doi.org/10.48550/ARXIV.2209.07334. +
+
+
+ + + + + + + + + + + diff --git a/inst/doc/doges-family-types.Rmd b/inst/doc/doges-family-types.Rmd index 4a8db74..1793fb1 100644 --- a/inst/doc/doges-family-types.Rmd +++ b/inst/doc/doges-family-types.Rmd @@ -84,7 +84,7 @@ sankeyNetwork(Links = links, Nodes = nodes, sinksRight=FALSE) ``` -The "NA" category of families seems to dominate the female part of the diagram, corresponding to dogaresse. These are due either to non-married doges, dogaresse *not* in patrician families. This was common at the beginning of the Republic, which is why *estinte* and *apostoliche* families seem to have that as a preference. It's common, however, throughout. +The "NA" category of families seems to dominate the female part of the diagram, corresponding to dogaresse. The fact that their family name is not available is due either to non-married doges or dogaresse *not* in patrician families. This was common at the beginning of the Republic, which is why *estinte* and *apostoliche* families seem to have that as a preference. It's common, however, throughout. We are mostly interested, however, in the social links formed by different types of noble families, so we will simply eliminate those rows and columns to have a clearer picture. @@ -109,6 +109,6 @@ What we see here is the popularity of *apostoliche* dogaresse, and of *ducali* d ## Conclusions -In [@dogesr] we hinted at the possibility that marrying in Venetian nobles families was done tactically, so that the commercial and politicas prospects of both families were enhanced. What we examine in this report is how intermarriage among the different types of families work, and found that, in general, family classes tended to marry *older* families, thus improving their position in the social network and/or solidifying it by making links to families with higher social capital. +In [@dogesr] we hinted at the possibility that marrying in Venetian nobles families was done tactically, so that the commercial and political prospects of both families were enhanced. What we examine in this report is how intermarriage among the different types of families work, and found that, in general, family classes tended to marry *older* families, thus improving their position in the social network and/or solidifying it by making links to families with higher social capital. ## References diff --git a/inst/doc/doges-family-types.html b/inst/doc/doges-family-types.html index ad3cc90..025afad 100644 --- a/inst/doc/doges-family-types.html +++ b/inst/doc/doges-family-types.html @@ -12,7 +12,7 @@ - + Using dogesr to work with Venetian doges family types @@ -280,13 +280,13 @@ function tryEval(code) { var result = null; try { - result = eval(code); + result = eval("(" + code + ")"); } catch(error) { - if (!error instanceof SyntaxError) { + if (!(error instanceof SyntaxError)) { throw error; } try { - result = eval("(" + code + ")"); + result = eval(code); } catch(e) { if (e instanceof SyntaxError) { throw error; @@ -1691,13 +1691,20 @@ for (var i = 0; i < sheets.length; i++) { if (sheets[i].ownerNode.dataset["origin"] !== "pandoc") continue; try { var rules = sheets[i].cssRules; } catch (e) { continue; } - for (var j = 0; j < rules.length; j++) { + var j = 0; + while (j < rules.length) { var rule = rules[j]; // check if there is a div.sourceCode rule - if (rule.type !== rule.STYLE_RULE || rule.selectorText !== "div.sourceCode") continue; + if (rule.type !== rule.STYLE_RULE || rule.selectorText !== "div.sourceCode") { + j++; + continue; + } var style = rule.style.cssText; // check if color or background-color is set - if (rule.style.color === '' && rule.style.backgroundColor === '') continue; + if (rule.style.color === '' && rule.style.backgroundColor === '') { + j++; + continue; + } // replace div.sourceCode by a pre.sourceCode rule sheets[i].deleteRule(j); sheets[i].insertRule('pre.sourceCode{' + style + '}', j); @@ -1926,7 +1933,7 @@

Using dogesr to work with Venetian doges family types

JJ Merelo

-

2023-02-21

+

2023-05-28

@@ -1949,41 +1956,9 @@

Set up

their marriages, families includes data for every noble family.

devtools::load_all(".")
-#> This version of bslib is designed to work with shiny version 1.6.0 or higher.
-#> ℹ Loading dogesr
-#> 
-#> Attaching package: 'dplyr'
-#> 
-#> 
-#> The following objects are masked from 'package:stats':
-#> 
-#>     filter, lag
-#> 
-#> 
-#> The following objects are masked from 'package:base':
-#> 
-#>     intersect, setdiff, setequal, union
-#> 
-#> 
-#> 
-#> Attaching package: 'igraph'
-#> 
-#> 
-#> The following objects are masked from 'package:dplyr':
-#> 
-#>     as_data_frame, groups, union
-#> 
-#> 
-#> The following objects are masked from 'package:stats':
-#> 
-#>     decompose, spectrum
-#> 
-#> 
-#> The following object is masked from 'package:base':
-#> 
-#>     union
-data("doges")
-data("families")
+#> ℹ Loading dogesr +data("doges") +data("families")

This will import the data from the dogesr package into the data.doges data frame, and family data in the family.types list. Let’s merge them into a single data @@ -2007,9 +1982,9 @@

Set up

+Orso - -NA +Nuovissime NA @@ -2121,7 +2096,7 @@

Set up

NA - +Pietro Sanudo NA Apostoliche @@ -2805,6 +2780,12 @@

Set up

NA +Renier +Dalmet +Nuovissime +NA + + Manin Grimani Soldo @@ -2850,8 +2831,19 @@

Set up

+Nuovissime♂ +3 +2 +0 +0 +0 +0 +0 +0 + + NA♂ -9 +8 1 0 0 @@ -2860,7 +2852,7 @@

Set up

0 0 - + Nuove♂ 8 0 @@ -2871,7 +2863,7 @@

Set up

0 1 - + Estinte♂ 17 0 @@ -2882,7 +2874,7 @@

Set up

0 0 - + Apostoliche♂ 18 7 @@ -2893,7 +2885,7 @@

Set up

1 0 - + Vecchie♂ 5 0 @@ -2904,7 +2896,7 @@

Set up

0 0 - + Ducali♂ 10 9 @@ -2915,7 +2907,7 @@

Set up

1 2 - + Evangeliche♂ 3 0 @@ -2926,17 +2918,6 @@

Set up

0 0 - -Nuovissime♂ -1 -2 -0 -0 -0 -0 -0 -0 - Soldo♂ 0 @@ -2963,38 +2944,31 @@

Set up

#> The following object is masked from 'package:testthat': #> #> matches -#> The following object is masked from 'package:igraph': -#> -#> crossing -library(dplyr) -library(tibble) -#> -#> Attaching package: 'tibble' -#> The following object is masked from 'package:igraph': -#> -#> as_data_frame -links <- types.adjacency %>% as.data.frame() -nodes <- data.frame( - name=c(as.character(links$fam.type.doge), as.character(links$fam.type.dogaressa)) %>% - unique() - ) -links$IDsource <- match(links$fam.type.doge, nodes$name)-1 -links$IDtarget <- match(links$fam.type.dogaressa, nodes$name)-1 - -library(networkD3) -links <- links[ links$Freq > 0,] -sankeyNetwork(Links = links, Nodes = nodes, - Source = "IDsource", Target = "IDtarget", - Value = "Freq", NodeID = "name", - sinksRight=FALSE) -
- +library(dplyr) +library(tibble) +links <- types.adjacency %>% as.data.frame() +nodes <- data.frame( + name=c(as.character(links$fam.type.doge), as.character(links$fam.type.dogaressa)) %>% + unique() + ) +links$IDsource <- match(links$fam.type.doge, nodes$name)-1 +links$IDtarget <- match(links$fam.type.dogaressa, nodes$name)-1 + +library(networkD3) +links <- links[ links$Freq > 0,] +sankeyNetwork(Links = links, Nodes = nodes, + Source = "IDsource", Target = "IDtarget", + Value = "Freq", NodeID = "name", + sinksRight=FALSE) +
+

The “NA” category of families seems to dominate the female part of -the diagram, corresponding to dogaresse. These are due either to -non-married doges, dogaresse not in patrician families. This -was common at the beginning of the Republic, which is why -estinte and apostoliche families seem to have that as -a preference. It’s common, however, throughout.

+the diagram, corresponding to dogaresse. The fact that their family name +is not available is due either to non-married doges or dogaresse +not in patrician families. This was common at the beginning of +the Republic, which is why estinte and apostoliche +families seem to have that as a preference. It’s common, however, +throughout.

We are mostly interested, however, in the social links formed by different types of noble families, so we will simply eliminate those rows and columns to have a clearer picture.

@@ -3010,8 +2984,8 @@

Set up

sankeyNetwork(Links = links2, Nodes = nodes2, Source = "IDsource", Target = "IDtarget", Value = "Freq", NodeID = "name") -
- +
+

What we see here is the popularity of apostoliche dogaresse, and of ducali doges. But also how common marrying up was. Apostolochie families couldn’t marry up, since @@ -3032,7 +3006,7 @@

Set up

Conclusions

In (Merelo-Guervós 2022) we hinted at the possibility that marrying in Venetian nobles families was done -tactically, so that the commercial and politicas prospects of both +tactically, so that the commercial and political prospects of both families were enhanced. What we examine in this report is how intermarriage among the different types of families work, and found that, in general, family classes tended to marry older diff --git a/inst/doc/doges-social-network.R b/inst/doc/doges-social-network.R index 5eae2f1..1b7c048 100644 --- a/inst/doc/doges-social-network.R +++ b/inst/doc/doges-social-network.R @@ -21,10 +21,10 @@ biggest_cluster_id <- which.max(components$csize) vert_ids <- V(doges.sn)[components$membership == biggest_cluster_id] doges.sn.connected <- igraph::induced_subgraph(doges.sn, vert_ids) -plot(doges.sn.connected,vertex.size=V(doges.sn.connected)$degree,layout=layout_with_fr, vertex.label.cex=0.7,vertex.color=V(doges.sn.connected)$types) +plot(doges.sn.connected,vertex.size=V(doges.sn.connected)$degree,layout=layout_with_fr, vertex.label.cex=0.7) ## ----newlinks----------------------------------------------------------------- -for (f in c("Pasqualigo","Foscari")) { +for (f in c("Pasqualigo","Foscari","Querini")) { print(incident(doges.sn,as.numeric(V(doges.sn)[f]))) } diff --git a/inst/doc/doges-social-network.Rmd b/inst/doc/doges-social-network.Rmd index 17d56f5..52260f6 100644 --- a/inst/doc/doges-social-network.Rmd +++ b/inst/doc/doges-social-network.Rmd @@ -19,7 +19,7 @@ knitr::opts_chunk$set( ## Introduction -Using data from `dogesr` [@dogesr], we will, in this vignette, analyze a sample of the social network of Venetian noble families, the one that includes *only* marriages by nobles that became doges and, in some cases, their parents. +Using data from `dogesr` [@dogesr], we will, in this vignette, analyze a sample of the social network of Venetian noble families, the one that includes *only* marriages by nobles that became doges and, in some cases, by their parents. ## Set up @@ -37,7 +37,7 @@ V(doges.sn)$degree <- degree(doges.sn) plot(doges.sn,vertex.size=V(doges.sn)$degree, layout=layout_with_kk, vertex.label.cex=0.7) ``` -Although not very clearly, we can at least see that there is a big connected component, and a set of components that are disconnected. Let us try and extract that component +Although not very clearly in this rendering (better if you run this in your own RStudio), we can at least see that there is a big connected component, and a set of components that are disconnected. Let us try and extract that component ```{r connected} components <- igraph::clusters(doges.sn, mode="weak") @@ -45,12 +45,13 @@ biggest_cluster_id <- which.max(components$csize) vert_ids <- V(doges.sn)[components$membership == biggest_cluster_id] doges.sn.connected <- igraph::induced_subgraph(doges.sn, vert_ids) -plot(doges.sn.connected,vertex.size=V(doges.sn.connected)$degree,layout=layout_with_fr, vertex.label.cex=0.7,vertex.color=V(doges.sn.connected)$types) +plot(doges.sn.connected,vertex.size=V(doges.sn.connected)$degree,layout=layout_with_fr, vertex.label.cex=0.7) ``` -This already shows (roughly) the power-law structure that was already evident in [@dogesr]; however, looking at Figure 1 in that paper, we see that some families that were "excluded" if doges' parents are not included in the social network, are now part of the connected component. The Lando and Pasqualigo families were then "outside", and they are now linked through some links. We'll check now which are the links in this case, as well as other that were also isolated previously. + +This already shows (roughly) the power-law structure that was already evident in [@dogesr]; however, looking at Figure 1 in that paper, we see that some families that were "excluded" if doges' parents are not included in the social network, are now part of the connected component. The Lando, Pasqualigo and Querini families were then "outside", and they are now linked through some matrilinear relationship. We'll check now which are the links in this case, as well as other that were also isolated previously. ```{r newlinks} -for (f in c("Pasqualigo","Foscari")) { +for (f in c("Pasqualigo","Foscari","Querini")) { print(incident(doges.sn,as.numeric(V(doges.sn)[f]))) } ``` @@ -63,6 +64,4 @@ Extending the social network of doges to include their parents, which is a way o However, this is only the case for the Foscari-Sagredo link; in the case of Loredan-Pasqualigo, it was an addition from the previous version of this dataset. At any rate, using a dataset that is continuously improved and enhanced allows digital humanities researchers have a better picture of the society they are researching. - - ## References diff --git a/inst/doc/doges-social-network.html b/inst/doc/doges-social-network.html index 619b564..47a4e29 100644 --- a/inst/doc/doges-social-network.html +++ b/inst/doc/doges-social-network.html @@ -12,7 +12,7 @@ - + Using dogesr to work with the social network of Venetian doges’ families @@ -121,13 +121,20 @@ for (var i = 0; i < sheets.length; i++) { if (sheets[i].ownerNode.dataset["origin"] !== "pandoc") continue; try { var rules = sheets[i].cssRules; } catch (e) { continue; } - for (var j = 0; j < rules.length; j++) { + var j = 0; + while (j < rules.length) { var rule = rules[j]; // check if there is a div.sourceCode rule - if (rule.type !== rule.STYLE_RULE || rule.selectorText !== "div.sourceCode") continue; + if (rule.type !== rule.STYLE_RULE || rule.selectorText !== "div.sourceCode") { + j++; + continue; + } var style = rule.style.cssText; // check if color or background-color is set - if (rule.style.color === '' && rule.style.backgroundColor === '') continue; + if (rule.style.color === '' && rule.style.backgroundColor === '') { + j++; + continue; + } // replace div.sourceCode by a pre.sourceCode rule sheets[i].deleteRule(j); sheets[i].insertRule('pre.sourceCode{' + style + '}', j); @@ -356,7 +363,7 @@

Using dogesr to work with the social network of Venetian doges’ families

JJ Merelo

-

2023-02-21

+

2023-05-28

@@ -365,7 +372,7 @@

Introduction

Using data from dogesr (Merelo-Guervós 2022), we will, in this vignette, analyze a sample of the social network of Venetian noble families, the one that includes only marriages by nobles that -became doges and, in some cases, their parents.

+became doges and, in some cases, by their parents.

Set up

@@ -379,32 +386,35 @@

Set up

doges.sn <- simplify(doges.sn, edge.attr.comb=list(weight="sum")) V(doges.sn)$degree <- degree(doges.sn) plot(doges.sn,vertex.size=V(doges.sn)$degree, layout=layout_with_kk, vertex.label.cex=0.7)
-

-

Although not very clearly, we can at least see that there is a big -connected component, and a set of components that are disconnected. Let -us try and extract that component

+

+

Although not very clearly in this rendering (better if you run this +in your own RStudio), we can at least see that there is a big connected +component, and a set of components that are disconnected. Let us try and +extract that component

components <- igraph::clusters(doges.sn, mode="weak")
 biggest_cluster_id <- which.max(components$csize)
 vert_ids <- V(doges.sn)[components$membership == biggest_cluster_id]
 
 doges.sn.connected <- igraph::induced_subgraph(doges.sn, vert_ids)
-plot(doges.sn.connected,vertex.size=V(doges.sn.connected)$degree,layout=layout_with_fr, vertex.label.cex=0.7,vertex.color=V(doges.sn.connected)$types)
-

-This already shows (roughly) the power-law structure that was already +plot(doges.sn.connected,vertex.size=V(doges.sn.connected)$degree,layout=layout_with_fr, vertex.label.cex=0.7) +

+

This already shows (roughly) the power-law structure that was already evident in (Merelo-Guervós 2022); however, looking at Figure 1 in that paper, we see that some families that were “excluded” if doges’ parents are not included in the social network, are -now part of the connected component. The Lando and Pasqualigo families -were then “outside”, and they are now linked through some links. We’ll -check now which are the links in this case, as well as other that were -also isolated previously.

-
for (f in c("Pasqualigo","Foscari")) {
+now part of the connected component. The Lando, Pasqualigo and Querini
+families were then “outside”, and they are now linked through some
+matrilinear relationship. We’ll check now which are the links in this
+case, as well as other that were also isolated previously.

+
for (f in c("Pasqualigo","Foscari","Querini")) {
   print(incident(doges.sn,as.numeric(V(doges.sn)[f])))
 }
-#> + 2/79 edges from d3d870e (vertex names):
+#> + 2/83 edges from f2719b9 (vertex names):
 #> [1] Loredan--Pasqualigo Lando  --Pasqualigo
-#> + 3/79 edges from d3d870e (vertex names):
-#> [1] Foscari--Priuli  Foscari--Sagredo Foscari--Nani
+#> + 3/83 edges from f2719b9 (vertex names): +#> [1] Foscari--Priuli Foscari--Sagredo Foscari--Nani +#> + 2/83 edges from f2719b9 (vertex names): +#> [1] Gradenigo--Querini Valier --Querini

Other than that, we can see that the same families are at the center of the social network: Dandolo, Morosini, Contarini, all those families that appear over and over again through the history of the Republic. diff --git a/inst/doc/doges-terms.html b/inst/doc/doges-terms.html index 47f1e0b..be5623f 100644 --- a/inst/doc/doges-terms.html +++ b/inst/doc/doges-terms.html @@ -12,7 +12,7 @@ - + Using dogesr to work with Venetian doges tenures @@ -121,13 +121,20 @@ for (var i = 0; i < sheets.length; i++) { if (sheets[i].ownerNode.dataset["origin"] !== "pandoc") continue; try { var rules = sheets[i].cssRules; } catch (e) { continue; } - for (var j = 0; j < rules.length; j++) { + var j = 0; + while (j < rules.length) { var rule = rules[j]; // check if there is a div.sourceCode rule - if (rule.type !== rule.STYLE_RULE || rule.selectorText !== "div.sourceCode") continue; + if (rule.type !== rule.STYLE_RULE || rule.selectorText !== "div.sourceCode") { + j++; + continue; + } var style = rule.style.cssText; // check if color or background-color is set - if (rule.style.color === '' && rule.style.backgroundColor === '') continue; + if (rule.style.color === '' && rule.style.backgroundColor === '') { + j++; + continue; + } // replace div.sourceCode by a pre.sourceCode rule sheets[i].deleteRule(j); sheets[i].insertRule('pre.sourceCode{' + style + '}', j); @@ -356,7 +363,7 @@

Using dogesr to work with Venetian doges tenures

JJ Merelo

-

2023-02-21

+

2023-05-28

@@ -616,7 +623,7 @@

Analyzing the evolution of the effective terms of the doges using 9 888 912 - +Pietro 24 @@ -697,7 +704,7 @@

Analyzing the evolution of the effective terms of the doges using institution. This is the distribution by centuries

doges.years.all$Century <- as.factor(doges.years.all$Century)
 ggplot(doges.years.all, aes(x=Century,y=Years))+geom_boxplot()
-

+

There seems to be a clear difference before and after the thirteenth century; there is also a return to longer tenures by the end of the Republic, in the 18th century. Was there a real difference?

@@ -709,7 +716,7 @@

Analyzing the evolution of the effective terms of the doges using stat_summary(fun=mean, geom="point", shape=20, size=3, color="red", fill="red") + geom_text(data = means, aes(label = round(Years, 2), y = Years + 2), size = 3) + geom_text(data = medians, aes(label = round(Years, 2), y = Years - 1), size = 3) -

+

This difference is significant, as indicated by the Wilcoxon test

wilcox.test(doges.years.all[doges.years.all$pre.serrata == T,]$Years,   doges.years.all[doges.years.all$pre.serrata == F,]$Years )
 #> 
diff --git a/inst/doges.bib b/inst/doges.bib
index 2a92f04..d67fd64 100644
--- a/inst/doges.bib
+++ b/inst/doges.bib
@@ -70,6 +70,21 @@ @misc{Telek2017MarryingTR
   year={2017}
 }
 
+@Article{histories:jj,
+AUTHOR = {Merelo, Juan J.},
+TITLE = {It's a Doge's Life: Examining Term Limits in {Venetian} Doges' Life Tenure},
+JOURNAL = {Histories},
+VOLUME = {3},
+YEAR = {2023},
+NUMBER = {1},
+PAGES = {21--31},
+URL = {https://www.mdpi.com/2409-9252/3/1/3},
+ISSN = {2409-9252},
+ABSTRACT = {During most of the lifespan of the Venetian republic, doges (the name their presidents received) were elected for life. However, a long tenure was a rare event, which effectively resulted in term limits, as has already been reported by several authors. In this paper, we examine the length of these tenures and their evolution during the existence of the Venetian republic, following Smith et al.’s claim that specific events in Venetian history caused this shortening, but also the dates and possibly event or events that effectively caused that limitation by design. Finally, we will discuss the causes of this limitation and its effective consequences.},
+DOI = {10.3390/histories3010003}
+}
+
+
 @article{lanzante,
 author = {Lanzante, John R.},
 title = {RESISTANT, ROBUST AND NON-PARAMETRIC TECHNIQUES FOR THE ANALYSIS OF CLIMATE DATA: THEORY AND EXAMPLES, INCLUDING APPLICATIONS TO HISTORICAL RADIOSONDE STATION DATA},
diff --git a/man/doge.families.Rd b/man/doge.families.Rd
new file mode 100644
index 0000000..8294acd
--- /dev/null
+++ b/man/doge.families.Rd
@@ -0,0 +1,29 @@
+\name{doge.families}
+\alias{doge.families}
+\title{Load the list of families that became doges, and their numbers}
+\usage{
+data("families")
+}
+\description{
+Load \code{doge.families} into the environment
+}
+
+\value{
+A table with two columns:
+\itemize{
+  \item \code{Family.doge} Name of the family
+  \item \code{n} Number of times this family "made" doge
+}
+}
+
+\examples{
+library(dogesr)
+data("doge.families")
+
+# How many times did the Dandolos became doge?
+doge.families[ doge.families$Family.doge == "Dandolo",]$n
+
+# How many families were doges?
+length(doge.families$Family.doge )
+
+}
diff --git a/man/doges.marriages.Rd b/man/doges.marriages.Rd
new file mode 100644
index 0000000..0122a28
--- /dev/null
+++ b/man/doges.marriages.Rd
@@ -0,0 +1,41 @@
+\name{doges.marriages.sn}
+\alias{doges.marriages.sn}
+\title{Data on doges' (and parents) matrimonial links}
+
+\description{
+An `igraph` object that includes doges' marriages, as well as their fathers', when available.
+}
+
+\usage{
+data(doges.marriages)
+}
+
+\value{
+An `igraph` objects, with vertices corresponding to dogi/dogaresse
+families, edges (links) corresponding to recorded marriages
+}
+
+\references{
+\insertAllCited{}
+}
+\author{J. J. Merelo}
+\note{
+Data originally from the Wikipedia
+}
+
+\seealso{
+\code{link{doges}}
+}
+
+\examples{
+library(dogesr)
+library(igraph)
+data(doges.marriages)
+
+# All families linked to the Contarinis
+incident(doges.marriages.sn,as.numeric(V(doges.marriages.sn)["Contarini"]))
+}
+
+\keyword{ Venice }
+\keyword{ Republica Serenissima }
+\keyword{ Digital Humanities}
diff --git a/man/families.Rd b/man/families.Rd
index 673227f..879e3f6 100644
--- a/man/families.Rd
+++ b/man/families.Rd
@@ -21,7 +21,7 @@ Main design decision here is that this can be used as external index for the typ
 
 \examples{
 library(dogesr)
-data("family")
+data("families")
 
 # Which type was the Dandolo family?
 family.types[["Dandolo"]]
diff --git a/man/marriage.graph.Rd b/man/marriage.graph.Rd
index d2af6da..1082150 100644
--- a/man/marriage.graph.Rd
+++ b/man/marriage.graph.Rd
@@ -3,7 +3,7 @@
 \title{Data on doges' matrimonial links}
 
 \description{
-Esxtract matrimonial links as an `igraph` object \code{family.types}; it includes doges' marriages, as well as their fathers', when available.
+Extract matrimonial links as an \code{igraph} object; it includes doges' marriages, as well as their fathers', when available.
 }
 
 \usage{
@@ -11,7 +11,7 @@ marriage.graph()
 }
 
 \details{
-The result of calling the function is an unfiltered igraph object, which you can use to plot the doges social network. Nodes are families, or "casate", and links indicate a wedding has taken place between the two families.
+The result of calling the function is an unfiltered \code{igraph} object, which you can use to plot the doges social network. Nodes are families, or "casate", and links indicate a wedding has taken place between the two families.
 }
 
 \value{
diff --git a/tests/testthat/test-dogesdata.R b/tests/testthat/test-dogesdata.R
index 1e5103e..d1dc999 100644
--- a/tests/testthat/test-dogesdata.R
+++ b/tests/testthat/test-dogesdata.R
@@ -2,6 +2,6 @@ data("doges")
 test_that("data is loaded", {
   expect_vector(data.doges)
   expect_length(data.doges,11)
-  expect_equal(nrow(data.doges),134)
+  expect_equal(nrow(data.doges),135)
 })
 data
diff --git a/vignettes/counting-doge-families.Rmd b/vignettes/counting-doge-families.Rmd
new file mode 100644
index 0000000..95a3300
--- /dev/null
+++ b/vignettes/counting-doge-families.Rmd
@@ -0,0 +1,59 @@
+---
+title: "Using `dogesr` to find out about the doges families"
+author: "JJ Merelo"
+date: "`r Sys.Date()`"
+output: rmarkdown::html_vignette
+vignette: >
+  %\VignetteIndexEntry{Using `dogesr` to find out about the doges families}
+  %\VignetteEngine{knitr::rmarkdown}
+  %\VignetteEncoding{UTF-8}
+bibliography: ../inst/doges.bib
+---
+
+```{r setup, include = FALSE}
+knitr::opts_chunk$set(
+  collapse = TRUE,
+  comment = "#>"
+)
+```
+
+## Introduction
+
+Only men belonging to one of the Venetian noble families could actually become doge after the *Serrata*; however, even if the number of noble families was initially small, it was eventually expanded to include several hundred noble families [@lane2019enlargement]. Not all of them, however, were able to include one of their own in the list of doges; on the other hand, the same serrata brought about informal mechanisms that guaranteed a fast turnover in the job of doge, so that many families would get the chance [@histories:jj]
+
+Using data from `dogesr` [@dogesr], we will, in this vignette, have a look at these families, who they were, and how many of them were there.
+
+## Set up
+
+We load the dataset needed, called `doge.families`.
+
+```{r load,warning=FALSE,message=FALSE}
+# library("dogesr") # If you have already installed this package
+devtools::load_all(".") # Comment this, uncomment above if you have installed this package
+data("doge.families")
+```
+
+This will import the data from the `dogesr` package into the `doge.families` *tibble*.
+
+## Ranking families
+
+Here's the ranking of the families with the highest number of doges; the Contarinis and Morosinis, right on top.
+
+```{r table}
+knitr::kable(head(doge.families[order(-doge.families$n),],n=10),row.names=F,col.names=c("Doge family","Number of doges"))
+```
+
+
+Which types of families are these? We can use data from the rest of the packages to find out:
+
+```{r family types}
+data("families")
+doge.families$type <- unname(family.types[doge.families$Family.doge])
+knitr::kable(head(doge.families[order(-doge.families$n),],n=20) %>% select(1,3),row.names=F,col.names=c("Doge family","Family type"))
+```
+
+## Conclusions
+
+Having a list of doges' family names is convenient and allows you to create visualizations and perform analysis easily, combining it with other datasets.
+
+## References
diff --git a/vignettes/doges-family-types.Rmd b/vignettes/doges-family-types.Rmd
index 4a8db74..1793fb1 100644
--- a/vignettes/doges-family-types.Rmd
+++ b/vignettes/doges-family-types.Rmd
@@ -84,7 +84,7 @@ sankeyNetwork(Links = links, Nodes = nodes,
                      sinksRight=FALSE)
 ```
 
-The "NA" category of families seems to dominate the female part of the diagram, corresponding to dogaresse. These are due either to non-married doges, dogaresse *not* in patrician families. This was common at the beginning of the Republic, which is why *estinte* and *apostoliche* families seem to have that as a preference. It's common, however, throughout.
+The "NA" category of families seems to dominate the female part of the diagram, corresponding to dogaresse. The fact that their family name is not available is due either to non-married doges or dogaresse *not* in patrician families. This was common at the beginning of the Republic, which is why *estinte* and *apostoliche* families seem to have that as a preference. It's common, however, throughout.
 
 We are mostly interested, however, in the social links formed by different types of noble families, so we will simply eliminate those rows and columns to have a clearer picture.
 
@@ -109,6 +109,6 @@ What we see here is the popularity of *apostoliche* dogaresse, and of *ducali* d
 
 ## Conclusions
 
-In [@dogesr] we hinted at the possibility that marrying in Venetian nobles families was done tactically, so that the commercial and politicas prospects of both families were enhanced. What we examine in this report is how intermarriage among the different types of families work, and found that, in general, family classes tended to marry *older* families, thus improving their position in the social network and/or solidifying it by making links to families with higher social capital.
+In [@dogesr] we hinted at the possibility that marrying in Venetian nobles families was done tactically, so that the commercial and political prospects of both families were enhanced. What we examine in this report is how intermarriage among the different types of families work, and found that, in general, family classes tended to marry *older* families, thus improving their position in the social network and/or solidifying it by making links to families with higher social capital.
 
 ## References
diff --git a/vignettes/doges-social-network.Rmd b/vignettes/doges-social-network.Rmd
index 17d56f5..52260f6 100644
--- a/vignettes/doges-social-network.Rmd
+++ b/vignettes/doges-social-network.Rmd
@@ -19,7 +19,7 @@ knitr::opts_chunk$set(
 
 ## Introduction
 
-Using data from `dogesr` [@dogesr], we will, in this vignette, analyze a sample of the social network of Venetian noble families, the one that includes *only* marriages by nobles that became doges and, in some cases, their parents.
+Using data from `dogesr` [@dogesr], we will, in this vignette, analyze a sample of the social network of Venetian noble families, the one that includes *only* marriages by nobles that became doges and, in some cases, by their parents.
 
 ## Set up
 
@@ -37,7 +37,7 @@ V(doges.sn)$degree <- degree(doges.sn)
 plot(doges.sn,vertex.size=V(doges.sn)$degree, layout=layout_with_kk, vertex.label.cex=0.7)
 ```
 
-Although not very clearly, we can at least see that there is a big connected component, and a set of components that are disconnected. Let us try and extract that component
+Although not very clearly in this rendering (better if you run this in your own RStudio), we can at least see that there is a big connected component, and a set of components that are disconnected. Let us try and extract that component
 
 ```{r connected}
 components <- igraph::clusters(doges.sn, mode="weak")
@@ -45,12 +45,13 @@ biggest_cluster_id <- which.max(components$csize)
 vert_ids <- V(doges.sn)[components$membership == biggest_cluster_id]
 
 doges.sn.connected <- igraph::induced_subgraph(doges.sn, vert_ids)
-plot(doges.sn.connected,vertex.size=V(doges.sn.connected)$degree,layout=layout_with_fr, vertex.label.cex=0.7,vertex.color=V(doges.sn.connected)$types)
+plot(doges.sn.connected,vertex.size=V(doges.sn.connected)$degree,layout=layout_with_fr, vertex.label.cex=0.7)
 ```
-This already shows (roughly) the power-law structure that was already evident in [@dogesr]; however, looking at Figure 1 in that paper, we see that some families that were "excluded" if doges' parents are not included in the social network, are now part of the connected component. The Lando and Pasqualigo families were then "outside", and they are now linked through some links. We'll check now which are the links in this case, as well as other that were also isolated previously.
+
+This already shows (roughly) the power-law structure that was already evident in [@dogesr]; however, looking at Figure 1 in that paper, we see that some families that were "excluded" if doges' parents are not included in the social network, are now part of the connected component. The Lando, Pasqualigo and Querini families were then "outside", and they are now linked through some matrilinear relationship. We'll check now which are the links in this case, as well as other that were also isolated previously.
 
 ```{r newlinks}
-for (f in c("Pasqualigo","Foscari")) {
+for (f in c("Pasqualigo","Foscari","Querini")) {
   print(incident(doges.sn,as.numeric(V(doges.sn)[f])))
 }
 ```
@@ -63,6 +64,4 @@ Extending the social network of doges to include their parents, which is a way o
 
 However, this is only the case for the Foscari-Sagredo link; in the case of Loredan-Pasqualigo, it was an addition from the previous version of this dataset. At any rate, using a dataset that is continuously improved and enhanced allows digital humanities researchers have a better picture of the society they are researching.
 
-
-
 ## References