## ----setup, include = FALSE---------------------------------------------------
library(hR)
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
## ----workforceHistory---------------------------------------------------------
data("workforceHistory")
# Reduce to DATE <= today to exclude future-dated records
dt = workforceHistory[DATE<=Sys.Date()]
# Reduce to max DATE and SEQ per person
dt = dt[dt[,.I[which.max(DATE)],by=.(EMPLID)]$V1]
dt = dt[dt[,.I[which.max(SEQ)],by=.(EMPLID,DATE)]$V1]
# Only consider workers who are currently active
# This provides a reliable 'headcount' data set that reflects today's active workforce
dt = dt[STATUS=="Active"]
# Exclude the CEO because she does not have a supervisor
CEO = dt[TITLE=="CEO",EMPLID]
dt = dt[EMPLID!=CEO]
# Show the prepared table
# This represents an example, active workforce
print(dt[,.(EMPLID,NAME,TITLE,SUPVID)])
## ----hierarchyLong------------------------------------------------------------
hLong = hierarchy(dt$EMPLID,dt$SUPVID,format="long")
print(hLong)
# Who reports up through Susan? (direct and indirect reports)
print(hLong[Supervisor==CEO])
## ----hierarchyWide------------------------------------------------------------
hWide = hierarchy(dt$EMPLID,dt$SUPVID,format="wide")
print(hWide)
# Who reports up through Pablo? (direct and indirect reports)
print(hWide[Supv2==199827])
## ----hierarchyStats-----------------------------------------------------------
hStats = hierarchyStats(dt$EMPLID,dt$SUPVID)
# Total Levels:
print(hStats$levelsCount$value)
# Total Individual Contributors:
print(hStats$individualContributorsCount$value)
# Total People Managers:
print(hStats$peopleManagersCount$value)
# Median Direct Reports:
print(hStats$medianDirectReports$value)
# Median Span of Control (Direct and Indirect Reports):
print(hStats$medianSpanOfControl$value)
# Span of Control Table
print(hStats$spanOfControlTable)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.