I have a data frame - dfchildlong
The 11 people (subjectid) has ~ 1-5 children each. The columns childone:childfive shows it and documents birth = 1, living =2 and dead = 4 covering year from 2000 - 2006.
dfchild <- data.frame(
subjectid = c("a","b","c","d","e","f","g","h","i","j","k"),
location = c("NY","NC","WA","WA","OR","CA","AR","KS","AZ","VT","MA"),
childone_2000 = c(NA,NA,1,NA,NA,NA,NA,1,NA,NA,NA),
childone_2001 = c(NA,1,2,NA,NA,NA,NA,2,NA,NA,1),
childone_2002 = c(1,2,2,NA,1,NA,1,2,NA,NA,2),
childone_2003 = c(2,2,2,NA,2,NA,2,2,1,NA,2),
childone_2004 = c(2,2,2,NA,2,NA,2,2,2,NA,2),
childone_2005 = c(2,2,2,1,2,NA,2,2,2,NA,2),
childone_2006 = c(4,2,2,2,2,NA,2,2,2,1,2),
childtwo_2000 = c(NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA),
childtwo_2001 = c(NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA),
childtwo_2002 = c(NA,NA,1,NA,NA,NA,NA,1,NA,NA,NA),
childtwo_2003 = c(NA,NA,2,NA,NA,NA,NA,2,NA,NA,1),
childtwo_2004 = c(1,NA,4,NA,NA,NA,NA,2,NA,NA,2),
childtwo_2005 = c(2,1,NA,NA,1,NA,NA,2,NA,NA,2),
childtwo_2006 = c(2,2,NA,1,2,NA,NA,2,NA,NA,2),
childthree_2000 = c(NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA),
childthree_2001 = c(NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA),
childthree_2002 = c(NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA),
childthree_2003 = c(NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA),
childthree_2004 = c(NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA),
childthree_2005 = c(1,NA,1,NA,NA,NA,NA,NA,NA,NA,NA),
childthree_2006 = c(2,NA,2,NA,NA,NA,NA,NA,NA,NA,NA),
childfour_2000 = c(NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA),
childfour_2001 = c(NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA),
childfour_2002 = c(NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA),
childfour_2003 = c(NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA),
childfour_2004 = c(NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA),
childfour_2005 = c(NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA),
childfour_2006 = c(1,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA),
childfive_2000 = c(NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA),
childfive_2001 = c(NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA),
childfive_2002 = c(NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA),
childfive_2003 = c(NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA),
childfive_2004 = c(NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA),
childfive_2005 = c(NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA),
childfive_2006 = c(1,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA))
library(tidyr)
#> Warning: package 'tidyr' was built under R version 3.6.2
dfchildlong <- pivot_longer(data = dfchild,cols = childone_2000:childfive_2006,
names_pattern = "([^\\d]+)(\\d+)",
names_to = c(".value","year"))
Created on 2022-01-14 by the reprex package (v2.0.1)
Now, I want to calculate the number of child each subjectid has each year. Here is an example I created manually. I want the column "Total children". For years where the child dies or the value of child = 4, then I need to count down the number of children.
Thankyou for the help !