Data Cart

Your data extract

0 variables
0 samples
View Cart
Subfamily membership number

Codes and Frequencies

Can't find the category you are looking for? Try the Detailed codes

Explore how IPUMS created this variable


      class Subfnum:public Editor{

Subfnum(VarPointer varInfo) : Editor(varInfo) {}
  void edit(){

int64_t a = 1;
    if (GQ() == 20) {
        a = 0;
    switch (dataSet) {
    case dataset_id::hu1970a:
    case dataset_id::hu1980a:
    case dataset_id::hu1990a:
    case dataset_id::hu2001a:
    case dataset_id::es2001a:
    case dataset_id::gr2001a:
    case dataset_id::sn1988a:
    case dataset_id::br1970a:
    case dataset_id::br1960a:
    case dataset_id::de1981a:
    case dataset_id::ie1981a:
    case dataset_id::ie1986a:
    case dataset_id::ie1991a:
    case dataset_id::ie2002a:
    case dataset_id::ie2006a:
    case dataset_id::ie2016a:
    case dataset_id::gr2011a:
    case dataset_id::hu2011a:
    case dataset_id::pl1978a:
    case dataset_id::pl1988a:
    case dataset_id::pl2002a:
    case dataset_id::pl2011a:
    case dataset_id::fj2007a:
    case dataset_id::zm2000a:
    case dataset_id::se1890a:
    case dataset_id::se1900a:
    case dataset_id::se1880a:
    case dataset_id::is1729a:
    case dataset_id::is1901a:
    case dataset_id::is1910a:
    case dataset_id::bj2002a:
    case dataset_id::bj2013a:
    case dataset_id::us2010a:
    case dataset_id::us2015a:
    case dataset_id::tg1970a:
            a = SUBFNUM.getRecoded();
		case dataset_id::is1703a:{

			long fcount=1;
			long  sfnum;

				for (long  i=1;i<=countPeople();i++){
						if (isHead(i))
					setData(i, sfnum);
					if (PERNUM() == i) a = sfnum;

        } // each person i
    case dataset_id::uk1851c:
    case dataset_id::uk1911a:
    case dataset_id::uk1851a:
    case dataset_id::uk1851b:
    case dataset_id::uk1861a:
    case dataset_id::uk1861b:
    case dataset_id::uk1871b:
    case dataset_id::uk1881a:
    case dataset_id::uk1881b:
    case dataset_id::uk1891a:
    case dataset_id::uk1891b:
    case dataset_id::uk1901a:
    case dataset_id::uk1901b:

            if (isMultiHead()){

				long  fcount=0;
				long   sfnum=0;
				for(long p=1;p<=countPeople();p++){
					if (isHead(p)){
						sfnum = fcount;
					setData(p, sfnum);
					if (p==PERNUM()) a = sfnum;


            }else{ // not multi head
			     a = SUBFNUM.getRecoded();

    case dataset_id::br1980a:
            a = 1;
            if (value(ln, 10, 10) == 2)                a = 2;
            if (value(ln, 10, 10) == 3)
                a = 3;
            if (BR1980A_0405() == 2)
                a = 2;
            if (BR1980A_0405() == 3)
                a = 3;
    case dataset_id::br1991a:
            a = 1;
            if (value(ln, 21, 21) == 4)
                a = 2;
            if (value(ln, 21, 21) == 5)
                a = 3;
            if (value(ln, 21, 21) == 6)
                a = 4;
            if (value(ln, 21, 21) == 7)
                a = 5;

            if (BR1991A_0403() == 4)
                a = 2;
            if (BR1991A_0403() == 5)
                a = 3;
            if (BR1991A_0403() == 6)
                a = 4;
            if (BR1991A_0403() == 7)
                a = 5;
    case dataset_id::br2000a:
            a = SUBFNUM.getRecoded();

            if (value(ln, 78, 78) == 0)
                a = 1;
            if (BR2000A_0413() == 0)
                a = 1;
    case dataset_id::mx1970a:
            a = SUBFNUM.getRecoded();
    case dataset_id::de1971a:
            a = SUBFNUM.getRecoded();
            if (DE1971A_0441() == 1)
                a = 1;
    case dataset_id::ie1971a:
    case dataset_id::ie1979a:
            long  n = 0;
            long m = 1;
            long  v;
            for (long  i = 1; i <= countPeople(); i++) {
                if (dataSet == dataset_id::ie1971a)
                    v = IE1971A_0400(i);
                    v = IE1979A_0400(i);
                if (v == 1) {
                    m = n;
                } else
                    if (v > 1 && v < 4) {
                        if (n == 0)
                            m = 1; // if spouse/child precedes the first head
                            m = n;
                    } else // TODO not sure SUBFNUM is the right var here
                        m = SUBFNUM.getRecoded(i);
                if (i == PERNUM())
                    a = m;
        a = 1;





SUBFNUM gives the number of the subfamily to which the person belongs within the household (1 = first subfamily, 2 = second subfamily, etc.). SUBFNUM records the identification of subfamilies in the original dataset, which generally correspond to conjugal units and their offspring.

Comparability — Index


Comparability — General

The relationship of subfamilies to the primary family (head of household) differs across samples.

SUBFNUM should not be confused with the IPUMS-International constructed variable FAMUNIT, which gives all persons related to the head the code of "1". SUBFNUM can be used in combination with SERIAL to reconstruct the family units identified in the original data set. For most samples SUBFREL gives the relationship to the head of family for all persons.

Comparability — Benin [top]

The sub-family number was instructed to be left blank during census data collection and it was inferred by the national statistical office. The enumeration instructions indicate that a sub-family (family nucleus) could be a couple with or without children, or an adult with at least one of his/her children. Persons in the sub-family are linked by a conjugal relation and/or biological (parental) relation.

Comparability — Brazil [top]

Subfamilies are identified in all samples except 2010. In 1960 Brazil, the first subfamily includes all persons related to the head of household, and other subfamilies consist of persons unrelated to the head. In all other years, second and subsequent subfamilies can be either related or unrelated to the household head.

Comparability — Fiji [top]

The 2007 Fiji census did not collect information on subfamily membership, but did include a question on mother's position in the household. Subfamilies appear to be inferred by the statistical office for only for persons who were closely related to the head (children, grandchildren, and parents/parents-in-law). All others are included with the primary family.

Comparability — Germany [top]

The 1981 sample identifies subfamilies constituted of married and cohabiting couples and their offspring. The 1971 sample provides only partial subfamily information which is available in unharmonized source variables. Subfamily relationships are not available in either year. Subfamilies are not identified in the 1987 census.

Comparability — Hungary [top]

In all samples, subfamilies could be either related or unrelated to the head of household. The samples identify differing numbers of subfamilies, although the distributions suggest that only 1980 may have imposed a top-code. The maximum number of subfamilies in each sample is as follows: 13 in 1970; 4 in 1980; 5 in 1990 and 2011; and 10 in 2001.

Comparability — Ireland [top]

Subfamilies membership in Ireland was not collected in the census questionnaire, but was inferred by the statistical office, and no subfamily data are available in 1996. Subfamilies can be related or unrelated to the householder. Subfamily numbers are reported by the statistical office in 1981 and subsequent samples. In 1971 and 1979, subfamily membership is inferred based on the presence of more than one household head.

The category "not in any family" changes over time. In 1971, 1979, and 1981, subfamilies consist of married couples and their unmarried children or single parents and their unmarried children. Beginning in 1986, other relatives who do not reside with a spouse or unmarried children are included in family units.

Comparability — Mexico [top]

Subfamilies in 1970 Mexico constitute married couples and their offspring, and they can be either related or unrelated to the head of household.

Comparability — Poland [top]

The Polish samples identify differing numbers of subfamilies. The maximum number of subfamilies in each sample is as follows: 5 in 1978; 6 in 1988 and 2002; and 8 in 2011.

In 1978, the category for "no subfamily identified" includes persons permanently absent. In 1988, persons in "non-families" within a household received a single family number.

Comparability — Senegal [top]

Subfamily numbers are available only for the 1988 Senegalese sample. Subfamilies consist of married couples and their unaccompanied children; they can be either related or unrelated to the household head.

Subfamily relationships are unknown, and only limited data is available on the relationship to household head for persons residing outside the primary family (see RELATE for additional information).

Although the 1988 sample enumerated de facto and de jure residents, most visitors to the household are coded as non-family members.

Comparability — Spain [top]

The data for Spain do not give values for persons not in families. The subfamily information was not collected as a census question, but was inferred by the national statistical office.

Comparability — Togo [top]

Subfamilies are only identified in the 1970 sample. In that sample, the subfamily number was inferred by the national statistical office. The definition for what constitutes a subfamily is not well-documented, but empirically, subfamilies usually consist of a couple with or without children or a single parent or guardian and their unmarried children.


  • All persons


  • Benin: 2002, 2013
  • Brazil: 1960, 1970, 1980, 1991, 2000
  • Fiji: 2007
  • Germany: 1981
  • Greece: 2001, 2011
  • Hungary: 1970, 1980, 1990, 2001, 2011
  • Ireland: 1971, 1979, 1981, 1986, 1991, 2002, 2006, 2016
  • Mexico: 1970
  • Poland: 1978, 1988, 2002, 2011
  • Senegal: 1988
  • Spain: 2001
  • Togo: 1970
  • United Kingdom: 1851c, 1911