A few key affiliations compared. From National censuses, the raw numbers of “Anglican”, “Baptist”, “Methodist”, “Catholic”, “Presbyterian”,“No Religion”, and Everyone Else.

excelpath <- "/Users/david/Dropbox/Religious geography/Working spreadsheets/Stats to 1976 with basic analysis.xlsx"
lookup <- "
sheet,header,type,data,Year
1858,2,National,3,1858
1861,2,National,3,1861
1864,2,National,3,1864
1867,2,National,3,1867
1871,1,National,2,1871
1874,1,National,3,1874
1878,2,National,4,1878
1881,2,National,4,1881
1886,2,National,4,1886
1891,2,National,4,1891
1896,2,National,4,1896
1901,2,National,4,1901
1906,2,National,4,1906
1911,2,National,4,1911
1916,3,National,5,1916
1921,2,National,4,1921
1926,1,National,10,1926
1936,2,National,8,1936
1945,3,National,7,1945
1951,2,National,5,1951
1956,2,National,6,1956
1961,2,National,5,1961
1966,2,National,5,1966
1971,2,National,6,1971
1976,2,National,5,1976"

wantedData <- read.csv(text=lookup)
wantedData$sheet <- as.character(wantedData$sheet)
library(readxl)

extractData <- function(x){
  xcl <- read_excel(excelpath, sheet = x[1], col_names = FALSE, col_types = NULL, na = "",skip = 0)
  headings <- t(xcl[as.integer(x[2]),])
  colnames(headings) <- "heading"
  rownames(headings) <- NULL
  print(x[1])
  print(xcl[(as.integer(x[4])-1):(as.integer(x[4])+1),1:3])
  counts <- t(xcl[as.integer(x[4]),])
  colnames(counts) <- "value"
  rownames(counts) <- NULL
  retrieved <- data.frame(headings, counts, stringsAsFactors = FALSE)
  retrieved$census <- x[1]
  retrieved$year <- x[5]
  retrieved$order <- 1:nrow(retrieved)
  return(retrieved)
}

listOfData <- apply(wantedData,1,extractData)
combinedList <- do.call(rbind,listOfData)


#############
#now collect up the other worksheet headings. 1981
excelpath <- "/Users/david/Dropbox/Religious geography/Statistics NZ data/JOB-03391 1996-1981/JOB-03391 1981.xlsx"
wantedData <- data.frame(sheet="1981 Table 1",header=7,type="national",data=1771,year=1981)
cen1981 <- (apply(wantedData,1,extractData))[[1]]
# 1986
excelpath <- "/Users/david/Dropbox/Religious geography/Statistics NZ data/JOB-03391 1996-1981/JOB-03391 1986.xlsx"
wantedData <- data.frame(sheet="1986 Table 1",header=7,type="national",data=1698,year=1986)
cen1986 <- (apply(wantedData,1,extractData))[[1]]
# 1996-1991
excelpath <- "/Users/david/Dropbox/Religious geography/Statistics NZ data/JOB-03391 1996-1981/JOB-03391 1996-1991.xlsx"
wantedData <- data.frame(sheet="1991 Table 1",header=7,type="national",data=1829,year=1991)
cen1991 <- (apply(wantedData,1,extractData))[[1]]
wantedData <- data.frame(sheet="1996 Table 1",header=7,type="national",data=1829,year=1996)
cen1996 <- (apply(wantedData,1,extractData))[[1]]
#2006-2001
excelpath <- "/Users/david/Dropbox/Religious geography/Statistics NZ data/JOB-03391 2006 and 2001.xlsx"
wantedData <- data.frame(sheet="2001 Table 1",header=7,type="national",data=1829,year=2001)
cen2001 <- (apply(wantedData,1,extractData))[[1]]
wantedData <- data.frame(sheet="2006 Table 1",header=7,type="national",data=1829,year=2006)
cen2006 <- (apply(wantedData,1,extractData))[[1]]
#2013
excelpath <- "/Users/david/Dropbox/Religious geography/Working spreadsheets/2013Religion by Peter.xlsx"
wantedData <- data.frame(sheet="2013 processed",header=2,type="national",data=21,year=2013)
cen2013 <- (apply(wantedData,1,extractData))[[1]]

combinedList <- rbind(combinedList, cen1981, cen1986, cen1991, cen1996, cen2001, cen2006, cen2013)
noblanks <- combinedList[complete.cases(combinedList),]
write.csv(noblanks, "bigpicture.csv", row.names = FALSE)

assigned <- read.csv("formal.csv", stringsAsFactors = FALSE)
religions <- merge(noblanks,assigned, by.x=c("census","order"), by.y= c("census","column"))
religions$year <- as.integer(religions$year)

interestedInList <- c("Anglican", "Baptist", "Methodist", "Catholic", "Presbyterian","No Religion")
selectedR <- religions[religions$Formally %in% interestedInList,c("Formally","year", "value")]
selectedR$value <- as.integer(selectedR$value)
affiliation <- aggregate(value ~ year + Formally, data=selectedR, sum )
counted <- aggregate(value ~ year, data=selectedR, sum )
merged <- merge(counted, religions[religions$Formally == "Population",], by="year")
rest <- data.frame(year=merged$year, Formally="Everyone Else", value= (as.integer(merged$value.y) - merged$value.x))
affiliation <- rbind(affiliation, rest)
names(affiliation)[2] <- "Category"
library(streamgraph)
affiliation %>%  streamgraph("Category","value", "year", scale="continuous") %>%
  sg_axis_x(5, tick_format="d3.format('04d')") %>% sg_fill_brewer("PuOr") %>%
  sg_legend(show=TRUE, label="Affiliation ")