Skip to content

Commit

Permalink
update again
Browse files Browse the repository at this point in the history
  • Loading branch information
cvanvelt committed Feb 6, 2024
1 parent 708d47e commit cc7fb16
Show file tree
Hide file tree
Showing 3 changed files with 63 additions and 1 deletion.
62 changes: 62 additions & 0 deletions HierTree.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,68 @@ class.cols <- read_sheet(ss, sheet="classes")
```
A hierarchic structure is basically a set of nodes, with edges linking nodes. Let's create an edge list for plotting using the <igraph> package.

```{r, echo=F, eval=F}
#' Create hierarchical data frame for hierarchical visualization
#'
#' @author Cindy van Velthoven
#'
#' @param cl.df level annotations
#' @param levels hierarchical levels to be visualized
#' @param rootname the name to be given to the center of the plot. Default is "total"
#'
#'
#' @usage hierDF <- as.hierDF(cl.df, levels = c("class_id_label", "subclass_id_label","supertype_id_label"),rootname="wmb")
#'
#' @return Dataframe with hierarchical representation of
as.hierDF <- function(cl.df,
levels=c("class_id_label","subclass_id_label","supertype_id_label"),
rootname="all") {
sub.df <- cl.df[,levels]
## set root (center)
sub.df <- data.frame(root = rootname, sub.df)
## add the first label set == all labels == root
hierarchyList <- list()
hierDF <- data.frame(parent = character(),
child = character())
for(i in seq_along(levels)){
print(i)
currentCols <- c("root", levels)
parentCols <- currentCols[i]
idCols <- currentCols[(i+1)]
if(is.numeric(sub.df[[idCols]])){
sub.df[[idCols]] <- as.character(as.numeric(sub.df[[idCols]]))
maxchar <- max(nchar(sub.df[[idCols]]))
sub.df[[idCols]] <- stringr::str_pad(sub.df[[idCols]] ,maxchar, pad = "0")
}
currentDF <- sub.df %>%
group_by(.data[[parentCols]],
.data[[idCols]]) %>%
summarise(values=n()) %>%
select(.data[[parentCols]],
.data[[idCols]])
colnames(currentDF) <- c("parent","child")
hierDF <- rbind(hierDF,currentDF)
}
return(hierDF)
}
```


```{r create tree, fig.width=12, fig.height=4, echo=T}
source("R/as.hierDF.R")
Expand Down
2 changes: 1 addition & 1 deletion docs/HierTree.html
Original file line number Diff line number Diff line change
Expand Up @@ -486,7 +486,7 @@ <h2>Plotting a hierarchical tree</h2>
<p><img src="HierTree_files/figure-html/plot%20tree-1.png" width="1152" /></p>
</div>

<div id="rmd-source-code">LS0tDQp0aXRsZTogIkhpZXJUcmVlIg0Kb3V0cHV0Og0KICBodG1sX2RvY3VtZW50Og0KICAgIHRvYzogdHJ1ZQ0KICAgIHRvY19mbG9hdDogdHJ1ZQ0KICAgIGNvZGVfZG93bmxvYWQ6IHRydWUNCiAgICBjb2RlX2ZvbGRpbmc6IHNob3cNCmRhdGU6ICIyMDI0LTAyLTA2Ig0KLS0tDQoNCiMjIFBsb3R0aW5nIGEgaGllcmFyY2hpY2FsIHRyZWUNCg0KVGhpcyBzY3JpcHQgY2FuIGJlIHVzZWQgdG8gcGxvdCBhIGhpZXJhcmNoaWNhbCB0cmVlIGxpa2UgdGhlIG9uZSBwcmVzZW50ZWQgaW4gWWFvIGV0IGFsLiwgMjAyMyBGaWd1cmUgMS4NClRoZSBpbnB1dCBjYW4gYmUgYSBkYXRhIGZyYW1lIHdpdGggcm93cyByZXByZXNlbnRpbmcgdGhlIGxlYWYtbGV2ZWwgYW5kIGNvbHVtbnMgcmVwcmVzZW50IGFubm90YXRpb25zLiBUaGlzIGRhdGEgZnJhbWUgbmVlZHMgdG8gYmUgcmVzdHJ1Y3R1cmVkIHRvIGEgcGFyZW50LWNoaWxkIChoaWVyYXJjaGljYWwgbmV0d29yayBkYXRhIGZyYW1lKSwgd2hpY2ggaXMgd2hhdCB0aGUgJ2FzLmhpZXJERicgZG9lcy4gDQoNCmBgYHtyIGtsaXBweSwgZWNobz1GQUxTRSwgaW5jbHVkZT1UUlVFfQ0Ka2xpcHB5OjprbGlwcHkoKQ0KYGBgDQoNCmBgYHtyIHNldHVwLCBpbmNsdWRlPUZBTFNFfSANCmtuaXRyOjpvcHRzX2NodW5rJHNldCh3YXJuaW5nID0gRkFMU0UsIG1lc3NhZ2UgPSBGQUxTRSkgDQpgYGANCg0KYGBge3IgbG9hZGluZyBsaWJzLCBlY2hvPVR9DQoNCg0KbGlicmFyeShkcGx5cikNCmxpYnJhcnkoZ2dwbG90MikNCmxpYnJhcnkoZ2duZXdzY2FsZSkNCmxpYnJhcnkoZ29vZ2xlc2hlZXRzNCkNCmxpYnJhcnkoZ2dyYXBoKQ0KbGlicmFyeShpZ3JhcGgpDQpsaWJyYXJ5KHRpZHl2ZXJzZSkNCiN0aGVtZV9zZXQodGhlbWVfdm9pZCgpKQ0KbGlicmFyeShnZ3JlcGVsKQ0KDQpgYGANCg0KTGV0J3Mgc3RhcnQgYnkgbG9hZGluZyBzb21lIGR1bW15IGhpZXJhcmNoaWNhbCBkYXRhLg0KDQpgYGB7ciBsb2FkIGdzaGVldHN9DQpnczRfZGVhdXRoKCkNCg0Kc3MgPC0gImh0dHBzOi8vZG9jcy5nb29nbGUuY29tL3NwcmVhZHNoZWV0cy9kLzFWTXMxVnM2aGhORFl1VVFzZ0Jwd0RpYUdpbVBHWWxkUjZXVlMyV2lTNW5RL2VkaXQ/dXNwPXNoYXJpbmciDQpjbC5kZiA8LSByZWFkX3NoZWV0KHNzLCBzaGVldD0iY2wuZGYiKQ0KDQpzdF9jb2xvcnMgPSByZWFkX3NoZWV0KHNzLCBzaGVldCA9ICJzdXBlcnR5cGVzIikNCnN1Yi5jb2xzIDwtIHJlYWRfc2hlZXQoc3MsIHNoZWV0PSJzdWJjbGFzc2VzIikNCmNsYXNzLmNvbHMgPC0gcmVhZF9zaGVldChzcywgc2hlZXQ9ImNsYXNzZXMiKQ0KDQpgYGANCkEgaGllcmFyY2hpYyBzdHJ1Y3R1cmUgaXMgYmFzaWNhbGx5IGEgc2V0IG9mIG5vZGVzLCB3aXRoIGVkZ2VzIGxpbmtpbmcgbm9kZXMuIExldCdzIGNyZWF0ZSBhbiBlZGdlIGxpc3QgZm9yIHBsb3R0aW5nIHVzaW5nIHRoZSA8aWdyYXBoPiBwYWNrYWdlLg0KDQpgYGB7ciBjcmVhdGUgdHJlZSwgZmlnLndpZHRoPTEyLCBmaWcuaGVpZ2h0PTQsIGVjaG89VH0NCnNvdXJjZSgiUi9hcy5oaWVyREYuUiIpDQoNCg0KaGllckRGIDwtIGFzLmhpZXJERihjbC5kZiwgbGV2ZWxzID0gYygiY2xhc3NfaWRfbGFiZWwiLCAic3ViY2xhc3NfaWRfbGFiZWwiLCJzdXBlcnR5cGVfaWRfbGFiZWwiKSxyb290bmFtZT0id21iIikNCiMgQ3JlYXRlIGEgZ3JhcGggb2JqZWN0DQpncmFwaCA8LSBncmFwaF9mcm9tX2RhdGFfZnJhbWUoIGhpZXJERikNCg0KDQpkdW1teSA8LSBnZ3JhcGgoZ3JhcGgsIGxheW91dCA9ICdkZW5kcm9ncmFtJywgY2lyY3VsYXIgPSBGQUxTRSkgKyANCiAgZ2VvbV9lZGdlX2RpYWdvbmFsKCkNCg0KZGVuZF9sZWF2ZXMgPC0gZHVtbXlbWyJkYXRhIl1dICU+JSBmaWx0ZXIobGVhZiA9PSBUUlVFKQ0KDQpuX2xlYXZlcyA8LSBucm93KGRlbmRfbGVhdmVzKQ0KDQpkZW5kX2xlYXZlcyA8LSBkZW5kX2xlYXZlcyAlPiUgbGVmdF9qb2luKHN0X2NvbG9yc1ssYygic3VwZXJ0eXBlX2lkX2xhYmVsIiwgInN1cGVydHlwZV9jb2xvciIsInN1cGVydHlwZV9pZCIpXSwgYnk9YygibmFtZSI9InN1cGVydHlwZV9pZF9sYWJlbCIpKQ0KDQpzdWJjbGFzcy5kZiA8LSBkdW1teVtbImRhdGEiXV0gJT4lIGZpbHRlcihuYW1lICVpbiUgc3ViLmNvbHMkc3ViY2xhc3NfaWRfbGFiZWwpICU+JSBsZWZ0X2pvaW4oc3ViLmNvbHNbLGMoInN1YmNsYXNzX2lkX2xhYmVsIiwic3ViY2xhc3NfaWQiLCAic3ViY2xhc3NfY29sb3IiKV0sIGJ5PWMoIm5hbWUiPSJzdWJjbGFzc19pZF9sYWJlbCIpKQ0Kc3ViY2xhc3MuZGYkc3ViY2xhc3NfaWQgPC0gZ3N1YiggIiAuKiQiLCAiIiwgc3ViY2xhc3MuZGYkbmFtZSkgDQoNCmNsYXNzLmRmIDwtICBkdW1teVtbImRhdGEiXV0gJT4lIGZpbHRlcihuYW1lICVpbiUgY2xhc3MuY29scyRjbGFzc19pZF9sYWJlbCkgJT4lIGxlZnRfam9pbihjbGFzcy5jb2xzWyxjKCJjbGFzc19pZF9sYWJlbCIsICJjbGFzc19jb2xvciIpXSwgYnk9YygibmFtZSI9ImNsYXNzX2lkX2xhYmVsIikpDQoNCmBgYA0KTmV4dCB1c2UgZ2dyYXBoIHRvIHBsb3QgdGhlICdkZW5kcm9ncmFtJyBhbmQgYWRkIGFkZGl0aW9uYWwgbGF5ZXJzIG9mIGxhYmVsaW5nIHVzaW5nIHN0YW5kYXJkIGdncGxvdC4NCg0KYGBge3IgY3JlYXRlIHBsb3QsIGZpZy53aWR0aD0xMSwgZmlnLmhlaWdodD0yLCBldmFsPVQsIGVjaG89VH0NCmZsYXRfcGxvdCA9IGdncmFwaChncmFwaCwgbGF5b3V0ID0gJ2RlbmRyb2dyYW0nLCBjaXJjdWxhciA9IEZBTFNFKSArIA0KICBnZW9tX2VkZ2VfZGlhZ29uYWwod2lkdGggPSAwLjI1LA0KICAgICAgICAgICAgICAgICAgICAgY29sb3I9ImdyZXk1MCIpICsNCiAgI3N1cGVydHlwZQ0KICBnZW9tX3BvaW50KGRhdGEgPSBkZW5kX2xlYXZlcywgDQogICAgICAgICAgICAgYWVzKHg9eCwgeT15LCBjb2xvcj1zdXBlcnR5cGVfY29sb3IpLA0KICAgICAgICAgICAgIGNleD0xLA0KICAgICAgICAgICAgIHNoYXBlPTE5KSArDQogIHNjYWxlX2NvbG9yX2lkZW50aXR5KGd1aWRlID0gIm5vbmUiKSArDQogICMgc3ViY2xhc3MNCiAgbmV3X3NjYWxlX2NvbG9yKCkgKw0KICBnZW9tX3BvaW50KGRhdGE9c3ViY2xhc3MuZGYsIA0KICAgICAgICAgICAgIGFlcyh4PXgsIHk9eSwgY29sb3I9IHN1YmNsYXNzX2NvbG9yKSwNCiAgICAgICAgICAgICBjZXg9MiwNCiAgICAgICAgICAgICBzaGFwZT0xOSkrDQogIGdlb21fdGV4dChkYXRhPXN1YmNsYXNzLmRmLCANCiAgICAgICAgICAgICBhZXMoeD14LCB5PXksIGxhYmVsPSBzdWJjbGFzc19pZCksDQogICAgICAgICAgICAgc2l6ZT0zLGhqdXN0PTAsIHZqdXN0PTAuNSwNCiAgICAgICAgICAgICBhbmdsZT05MCkrICMsICAgICAgICAgICAgIGRpcmVjdGlvbj0neScpKw0KICAgIHNjYWxlX2NvbG9yX2lkZW50aXR5KGd1aWRlID0gIm5vbmUiKSArDQogICMgY2xhc3MNCiAgbmV3X3NjYWxlX2NvbG9yKCkgKw0KICBnZW9tX3BvaW50KGRhdGE9Y2xhc3MuZGYsIA0KICAgICAgICAgICAgIGFlcyh4PXgsIHk9eSwgY29sb3I9IGNsYXNzX2NvbG9yKSwNCiAgICAgICAgICAgICBjZXg9MiwNCiAgICAgICAgICAgICBzaGFwZT0xOSkrDQogIGdlb21fdGV4dF9yZXBlbChkYXRhPWNsYXNzLmRmLCANCiAgICAgICAgICAgICBhZXMoeD14LCB5PXksIGxhYmVsPSBuYW1lKSwNCiAgICAgICAgICAgICBzaXplPTMsaGp1c3Q9MSwgdmp1c3Q9MC41LA0KICAgICAgICAgICAgIGRpcmVjdGlvbj0neScpKw0KICBzY2FsZV9jb2xvcl9pZGVudGl0eShndWlkZSA9ICJub25lIikgKw0KICAjIGFkZCBvdGhlciBsZXZlbHMgaWYgbmVlZGVkDQogIGdlb21fdGV4dChkYXRhPWRlbmRfbGVhdmVzLA0KICAgICAgICAgICAgYWVzKHggPSB4LA0KICAgICAgICAgICAgICAgIHkgPSB5LTAuMSwNCiAgICAgICAgICAgICAgICBsYWJlbCA9IG5hbWUpLA0KICAgICAgICAgICAgYW5nbGUgPSA5MCwNCiAgICAgICAgICAgIGhqdXN0ID0gMS4wLA0KICAgICAgICAgICAgdmp1c3QgPSAwLjUsDQogICAgICAgICAgICBzaXplID0gMywNCiAgICAgICAgICAgIGxpbmVoZWlnaHQ9MC4xKSArDQogIHNjYWxlX3hfY29udGludW91cyhsaW1pdHMgPSBjKC0xLG5fbGVhdmVzICsgMSksDQogICAgICAgICAgICAgICAgICAgICBleHBhbmQ9YygwLDApKSArICANCiAgY29vcmRfY2FydGVzaWFuKGNsaXAgPSAnb2ZmJykgICsNCiAgdGhlbWVfdm9pZCgpICArDQogIHRoZW1lKHBsb3QubWFyZ2luID0gbWFyZ2luKHQgPSAwLCByID0gMCwgYiA9IDEyMCwgbCA9IDAsKSkNCiAgDQoNCg0KYGBgDQoNCmBgYHtyIHBsb3QgdHJlZSwgZmlnLndpZHRoPTEyLCBmaWcuaGVpZ2h0PTQsZWNobz1GfQ0KZmxhdF9wbG90DQpgYGANCg0KDQo=</div>
<div id="rmd-source-code">LS0tDQp0aXRsZTogIkhpZXJUcmVlIg0Kb3V0cHV0Og0KICBodG1sX2RvY3VtZW50Og0KICAgIHRvYzogdHJ1ZQ0KICAgIHRvY19mbG9hdDogdHJ1ZQ0KICAgIGNvZGVfZG93bmxvYWQ6IHRydWUNCiAgICBjb2RlX2ZvbGRpbmc6IHNob3cNCmRhdGU6ICIyMDI0LTAyLTA2Ig0KLS0tDQoNCiMjIFBsb3R0aW5nIGEgaGllcmFyY2hpY2FsIHRyZWUNCg0KVGhpcyBzY3JpcHQgY2FuIGJlIHVzZWQgdG8gcGxvdCBhIGhpZXJhcmNoaWNhbCB0cmVlIGxpa2UgdGhlIG9uZSBwcmVzZW50ZWQgaW4gWWFvIGV0IGFsLiwgMjAyMyBGaWd1cmUgMS4NClRoZSBpbnB1dCBjYW4gYmUgYSBkYXRhIGZyYW1lIHdpdGggcm93cyByZXByZXNlbnRpbmcgdGhlIGxlYWYtbGV2ZWwgYW5kIGNvbHVtbnMgcmVwcmVzZW50IGFubm90YXRpb25zLiBUaGlzIGRhdGEgZnJhbWUgbmVlZHMgdG8gYmUgcmVzdHJ1Y3R1cmVkIHRvIGEgcGFyZW50LWNoaWxkIChoaWVyYXJjaGljYWwgbmV0d29yayBkYXRhIGZyYW1lKSwgd2hpY2ggaXMgd2hhdCB0aGUgJ2FzLmhpZXJERicgZG9lcy4gDQoNCmBgYHtyIGtsaXBweSwgZWNobz1GQUxTRSwgaW5jbHVkZT1UUlVFfQ0Ka2xpcHB5OjprbGlwcHkoKQ0KYGBgDQoNCmBgYHtyIHNldHVwLCBpbmNsdWRlPUZBTFNFfSANCmtuaXRyOjpvcHRzX2NodW5rJHNldCh3YXJuaW5nID0gRkFMU0UsIG1lc3NhZ2UgPSBGQUxTRSkgDQpgYGANCg0KYGBge3IgbG9hZGluZyBsaWJzLCBlY2hvPVR9DQoNCg0KbGlicmFyeShkcGx5cikNCmxpYnJhcnkoZ2dwbG90MikNCmxpYnJhcnkoZ2duZXdzY2FsZSkNCmxpYnJhcnkoZ29vZ2xlc2hlZXRzNCkNCmxpYnJhcnkoZ2dyYXBoKQ0KbGlicmFyeShpZ3JhcGgpDQpsaWJyYXJ5KHRpZHl2ZXJzZSkNCiN0aGVtZV9zZXQodGhlbWVfdm9pZCgpKQ0KbGlicmFyeShnZ3JlcGVsKQ0KDQpgYGANCg0KTGV0J3Mgc3RhcnQgYnkgbG9hZGluZyBzb21lIGR1bW15IGhpZXJhcmNoaWNhbCBkYXRhLg0KDQpgYGB7ciBsb2FkIGdzaGVldHN9DQpnczRfZGVhdXRoKCkNCg0Kc3MgPC0gImh0dHBzOi8vZG9jcy5nb29nbGUuY29tL3NwcmVhZHNoZWV0cy9kLzFWTXMxVnM2aGhORFl1VVFzZ0Jwd0RpYUdpbVBHWWxkUjZXVlMyV2lTNW5RL2VkaXQ/dXNwPXNoYXJpbmciDQpjbC5kZiA8LSByZWFkX3NoZWV0KHNzLCBzaGVldD0iY2wuZGYiKQ0KDQpzdF9jb2xvcnMgPSByZWFkX3NoZWV0KHNzLCBzaGVldCA9ICJzdXBlcnR5cGVzIikNCnN1Yi5jb2xzIDwtIHJlYWRfc2hlZXQoc3MsIHNoZWV0PSJzdWJjbGFzc2VzIikNCmNsYXNzLmNvbHMgPC0gcmVhZF9zaGVldChzcywgc2hlZXQ9ImNsYXNzZXMiKQ0KDQpgYGANCkEgaGllcmFyY2hpYyBzdHJ1Y3R1cmUgaXMgYmFzaWNhbGx5IGEgc2V0IG9mIG5vZGVzLCB3aXRoIGVkZ2VzIGxpbmtpbmcgbm9kZXMuIExldCdzIGNyZWF0ZSBhbiBlZGdlIGxpc3QgZm9yIHBsb3R0aW5nIHVzaW5nIHRoZSA8aWdyYXBoPiBwYWNrYWdlLg0KDQpgYGB7ciwgZWNobz1GLCBldmFsPUZ9DQojJyBDcmVhdGUgaGllcmFyY2hpY2FsIGRhdGEgZnJhbWUgZm9yIGhpZXJhcmNoaWNhbCB2aXN1YWxpemF0aW9uIA0KIycNCiMnIEBhdXRob3IgQ2luZHkgdmFuIFZlbHRob3Zlbg0KIycNCiMnIEBwYXJhbSBjbC5kZiBsZXZlbCBhbm5vdGF0aW9ucw0KIycgQHBhcmFtIGxldmVscyBoaWVyYXJjaGljYWwgbGV2ZWxzIHRvIGJlIHZpc3VhbGl6ZWQNCiMnIEBwYXJhbSByb290bmFtZSB0aGUgbmFtZSB0byBiZSBnaXZlbiB0byB0aGUgY2VudGVyIG9mIHRoZSBwbG90LiBEZWZhdWx0IGlzICJ0b3RhbCINCiMnDQojJyANCiMnIEB1c2FnZSBoaWVyREYgPC0gYXMuaGllckRGKGNsLmRmLCBsZXZlbHMgPSBjKCJjbGFzc19pZF9sYWJlbCIsICJzdWJjbGFzc19pZF9sYWJlbCIsInN1cGVydHlwZV9pZF9sYWJlbCIpLHJvb3RuYW1lPSJ3bWIiKQ0KIycgDQojJyBAcmV0dXJuIERhdGFmcmFtZSB3aXRoIGhpZXJhcmNoaWNhbCByZXByZXNlbnRhdGlvbiBvZiANCg0KYXMuaGllckRGIDwtIGZ1bmN0aW9uKGNsLmRmLCANCiAgICAgICAgICAgICAgICAgICAgICBsZXZlbHM9YygiY2xhc3NfaWRfbGFiZWwiLCJzdWJjbGFzc19pZF9sYWJlbCIsInN1cGVydHlwZV9pZF9sYWJlbCIpLA0KICAgICAgICAgICAgICAgICAgICAgIHJvb3RuYW1lPSJhbGwiKSB7DQogIA0KICBzdWIuZGYgPC0gY2wuZGZbLGxldmVsc10NCiAgDQogICMjIHNldCByb290IChjZW50ZXIpDQogIHN1Yi5kZiA8LSBkYXRhLmZyYW1lKHJvb3QgPSByb290bmFtZSwgc3ViLmRmKQ0KICANCiAgDQogICMjIGFkZCB0aGUgZmlyc3QgbGFiZWwgc2V0ID09IGFsbCBsYWJlbHMgPT0gcm9vdA0KICBoaWVyYXJjaHlMaXN0IDwtIGxpc3QoKQ0KICANCiAgaGllckRGIDwtIGRhdGEuZnJhbWUocGFyZW50ID0gY2hhcmFjdGVyKCksDQogICAgICAgICAgICAgICAgICAgICAgIGNoaWxkID0gY2hhcmFjdGVyKCkpDQogIA0KICBmb3IoaSBpbiBzZXFfYWxvbmcobGV2ZWxzKSl7DQogICAgcHJpbnQoaSkNCiAgICANCiAgICBjdXJyZW50Q29scyA8LSBjKCJyb290IiwgbGV2ZWxzKQ0KICAgIA0KICAgIHBhcmVudENvbHMgPC0gY3VycmVudENvbHNbaV0NCiAgICBpZENvbHMgPC0gY3VycmVudENvbHNbKGkrMSldDQogICAgDQogICAgDQogICAgaWYoaXMubnVtZXJpYyhzdWIuZGZbW2lkQ29sc11dKSl7DQogICAgICBzdWIuZGZbW2lkQ29sc11dIDwtIGFzLmNoYXJhY3Rlcihhcy5udW1lcmljKHN1Yi5kZltbaWRDb2xzXV0pKQ0KICAgICAgbWF4Y2hhciA8LSBtYXgobmNoYXIoc3ViLmRmW1tpZENvbHNdXSkpDQogICAgICBzdWIuZGZbW2lkQ29sc11dIDwtIHN0cmluZ3I6OnN0cl9wYWQoc3ViLmRmW1tpZENvbHNdXSAsbWF4Y2hhciwgcGFkID0gIjAiKQ0KICAgIH0NCiAgICANCiAgICBjdXJyZW50REYgPC0gc3ViLmRmICU+JQ0KICAgICAgZ3JvdXBfYnkoLmRhdGFbW3BhcmVudENvbHNdXSwNCiAgICAgICAgICAgICAgIC5kYXRhW1tpZENvbHNdXSkgJT4lIA0KICAgICAgc3VtbWFyaXNlKHZhbHVlcz1uKCkpICU+JQ0KICAgICAgc2VsZWN0KC5kYXRhW1twYXJlbnRDb2xzXV0sDQogICAgICAgICAgICAgLmRhdGFbW2lkQ29sc11dKQ0KICAgIA0KICAgIGNvbG5hbWVzKGN1cnJlbnRERikgPC0gYygicGFyZW50IiwiY2hpbGQiKQ0KICAgIGhpZXJERiA8LSByYmluZChoaWVyREYsY3VycmVudERGKQ0KICB9DQogIA0KICANCiAgcmV0dXJuKGhpZXJERikNCn0NCmBgYA0KDQoNCmBgYHtyIGNyZWF0ZSB0cmVlLCBmaWcud2lkdGg9MTIsIGZpZy5oZWlnaHQ9NCwgZWNobz1UfQ0Kc291cmNlKCJSL2FzLmhpZXJERi5SIikNCg0KDQpoaWVyREYgPC0gYXMuaGllckRGKGNsLmRmLCBsZXZlbHMgPSBjKCJjbGFzc19pZF9sYWJlbCIsICJzdWJjbGFzc19pZF9sYWJlbCIsInN1cGVydHlwZV9pZF9sYWJlbCIpLHJvb3RuYW1lPSJ3bWIiKQ0KIyBDcmVhdGUgYSBncmFwaCBvYmplY3QNCmdyYXBoIDwtIGdyYXBoX2Zyb21fZGF0YV9mcmFtZSggaGllckRGKQ0KDQoNCmR1bW15IDwtIGdncmFwaChncmFwaCwgbGF5b3V0ID0gJ2RlbmRyb2dyYW0nLCBjaXJjdWxhciA9IEZBTFNFKSArIA0KICBnZW9tX2VkZ2VfZGlhZ29uYWwoKQ0KDQpkZW5kX2xlYXZlcyA8LSBkdW1teVtbImRhdGEiXV0gJT4lIGZpbHRlcihsZWFmID09IFRSVUUpDQoNCm5fbGVhdmVzIDwtIG5yb3coZGVuZF9sZWF2ZXMpDQoNCmRlbmRfbGVhdmVzIDwtIGRlbmRfbGVhdmVzICU+JSBsZWZ0X2pvaW4oc3RfY29sb3JzWyxjKCJzdXBlcnR5cGVfaWRfbGFiZWwiLCAic3VwZXJ0eXBlX2NvbG9yIiwic3VwZXJ0eXBlX2lkIildLCBieT1jKCJuYW1lIj0ic3VwZXJ0eXBlX2lkX2xhYmVsIikpDQoNCnN1YmNsYXNzLmRmIDwtIGR1bW15W1siZGF0YSJdXSAlPiUgZmlsdGVyKG5hbWUgJWluJSBzdWIuY29scyRzdWJjbGFzc19pZF9sYWJlbCkgJT4lIGxlZnRfam9pbihzdWIuY29sc1ssYygic3ViY2xhc3NfaWRfbGFiZWwiLCJzdWJjbGFzc19pZCIsICJzdWJjbGFzc19jb2xvciIpXSwgYnk9YygibmFtZSI9InN1YmNsYXNzX2lkX2xhYmVsIikpDQpzdWJjbGFzcy5kZiRzdWJjbGFzc19pZCA8LSBnc3ViKCAiIC4qJCIsICIiLCBzdWJjbGFzcy5kZiRuYW1lKSANCg0KY2xhc3MuZGYgPC0gIGR1bW15W1siZGF0YSJdXSAlPiUgZmlsdGVyKG5hbWUgJWluJSBjbGFzcy5jb2xzJGNsYXNzX2lkX2xhYmVsKSAlPiUgbGVmdF9qb2luKGNsYXNzLmNvbHNbLGMoImNsYXNzX2lkX2xhYmVsIiwgImNsYXNzX2NvbG9yIildLCBieT1jKCJuYW1lIj0iY2xhc3NfaWRfbGFiZWwiKSkNCg0KYGBgDQpOZXh0IHVzZSBnZ3JhcGggdG8gcGxvdCB0aGUgJ2RlbmRyb2dyYW0nIGFuZCBhZGQgYWRkaXRpb25hbCBsYXllcnMgb2YgbGFiZWxpbmcgdXNpbmcgc3RhbmRhcmQgZ2dwbG90Lg0KDQpgYGB7ciBjcmVhdGUgcGxvdCwgZmlnLndpZHRoPTExLCBmaWcuaGVpZ2h0PTIsIGV2YWw9VCwgZWNobz1UfQ0KZmxhdF9wbG90ID0gZ2dyYXBoKGdyYXBoLCBsYXlvdXQgPSAnZGVuZHJvZ3JhbScsIGNpcmN1bGFyID0gRkFMU0UpICsgDQogIGdlb21fZWRnZV9kaWFnb25hbCh3aWR0aCA9IDAuMjUsDQogICAgICAgICAgICAgICAgICAgICBjb2xvcj0iZ3JleTUwIikgKw0KICAjc3VwZXJ0eXBlDQogIGdlb21fcG9pbnQoZGF0YSA9IGRlbmRfbGVhdmVzLCANCiAgICAgICAgICAgICBhZXMoeD14LCB5PXksIGNvbG9yPXN1cGVydHlwZV9jb2xvciksDQogICAgICAgICAgICAgY2V4PTEsDQogICAgICAgICAgICAgc2hhcGU9MTkpICsNCiAgc2NhbGVfY29sb3JfaWRlbnRpdHkoZ3VpZGUgPSAibm9uZSIpICsNCiAgIyBzdWJjbGFzcw0KICBuZXdfc2NhbGVfY29sb3IoKSArDQogIGdlb21fcG9pbnQoZGF0YT1zdWJjbGFzcy5kZiwgDQogICAgICAgICAgICAgYWVzKHg9eCwgeT15LCBjb2xvcj0gc3ViY2xhc3NfY29sb3IpLA0KICAgICAgICAgICAgIGNleD0yLA0KICAgICAgICAgICAgIHNoYXBlPTE5KSsNCiAgZ2VvbV90ZXh0KGRhdGE9c3ViY2xhc3MuZGYsIA0KICAgICAgICAgICAgIGFlcyh4PXgsIHk9eSwgbGFiZWw9IHN1YmNsYXNzX2lkKSwNCiAgICAgICAgICAgICBzaXplPTMsaGp1c3Q9MCwgdmp1c3Q9MC41LA0KICAgICAgICAgICAgIGFuZ2xlPTkwKSsgIywgICAgICAgICAgICAgZGlyZWN0aW9uPSd5JykrDQogICAgc2NhbGVfY29sb3JfaWRlbnRpdHkoZ3VpZGUgPSAibm9uZSIpICsNCiAgIyBjbGFzcw0KICBuZXdfc2NhbGVfY29sb3IoKSArDQogIGdlb21fcG9pbnQoZGF0YT1jbGFzcy5kZiwgDQogICAgICAgICAgICAgYWVzKHg9eCwgeT15LCBjb2xvcj0gY2xhc3NfY29sb3IpLA0KICAgICAgICAgICAgIGNleD0yLA0KICAgICAgICAgICAgIHNoYXBlPTE5KSsNCiAgZ2VvbV90ZXh0X3JlcGVsKGRhdGE9Y2xhc3MuZGYsIA0KICAgICAgICAgICAgIGFlcyh4PXgsIHk9eSwgbGFiZWw9IG5hbWUpLA0KICAgICAgICAgICAgIHNpemU9MyxoanVzdD0xLCB2anVzdD0wLjUsDQogICAgICAgICAgICAgZGlyZWN0aW9uPSd5JykrDQogIHNjYWxlX2NvbG9yX2lkZW50aXR5KGd1aWRlID0gIm5vbmUiKSArDQogICMgYWRkIG90aGVyIGxldmVscyBpZiBuZWVkZWQNCiAgZ2VvbV90ZXh0KGRhdGE9ZGVuZF9sZWF2ZXMsDQogICAgICAgICAgICBhZXMoeCA9IHgsDQogICAgICAgICAgICAgICAgeSA9IHktMC4xLA0KICAgICAgICAgICAgICAgIGxhYmVsID0gbmFtZSksDQogICAgICAgICAgICBhbmdsZSA9IDkwLA0KICAgICAgICAgICAgaGp1c3QgPSAxLjAsDQogICAgICAgICAgICB2anVzdCA9IDAuNSwNCiAgICAgICAgICAgIHNpemUgPSAzLA0KICAgICAgICAgICAgbGluZWhlaWdodD0wLjEpICsNCiAgc2NhbGVfeF9jb250aW51b3VzKGxpbWl0cyA9IGMoLTEsbl9sZWF2ZXMgKyAxKSwNCiAgICAgICAgICAgICAgICAgICAgIGV4cGFuZD1jKDAsMCkpICsgIA0KICBjb29yZF9jYXJ0ZXNpYW4oY2xpcCA9ICdvZmYnKSAgKw0KICB0aGVtZV92b2lkKCkgICsNCiAgdGhlbWUocGxvdC5tYXJnaW4gPSBtYXJnaW4odCA9IDAsIHIgPSAwLCBiID0gMTIwLCBsID0gMCwpKQ0KICANCg0KDQpgYGANCg0KYGBge3IgcGxvdCB0cmVlLCBmaWcud2lkdGg9MTIsIGZpZy5oZWlnaHQ9NCxlY2hvPUZ9DQpmbGF0X3Bsb3QNCmBgYA0KDQoNCg==</div>


</div>
Expand Down
Binary file modified docs/HierTree_files/figure-html/plot tree-1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit cc7fb16

Please sign in to comment.