J'ai une trame de données complexe et un exemple minimal est la suivante:rowsum sur une table imbriquée dans r
df <- structure(list(District = c("Adilabad", "Adilabad", "Adilabad",
"Adilabad", "Adilabad", "Adilabad", "Adilabad", "Adilabad", "Adilabad",
"Adilabad"), Subdistt = c("Adilabad", "Adilabad", "Adilabad",
"Tamsi", "Tamsi", "Tamsi", "Tamsi", "Tamsi", "Tamsi", "Tamsi"
), TRU = c("Total", "Rural", "Urban", "Total", "Rural", "Urban",
"Rural", "Rural", "Urban", "Urban"), Level = c("District", "District",
"District", "Sub-District", "Sub-District", "Sub-District", "Village",
"Village", "Town", "Town"), No_HH = c(1277, 364, 913,
1277, 364, 913, 117, 247, 614, 299)), .Names = c("District",
"Subdistt", "TRU", "Level", "No_HH"), row.names = c(NA, 10L), class = "data.frame")
qui ressemble à ceci:
District Subdistt TRU Level No_HH
1 Adilabad Adilabad Total District 1277
2 Adilabad Adilabad Rural District 364
3 Adilabad Adilabad Urban District 913
4 Adilabad Tamsi Total Sub-District 1277
5 Adilabad Tamsi Rural Sub-District 364
6 Adilabad Tamsi Urban Sub-District 913
7 Adilabad Tamsi Rural Village 117
8 Adilabad Tamsi Rural Village 247
9 Adilabad Tamsi Urban Town 614
10 Adilabad Tamsi Urban Town 299
Chaque colonne suivante d'une manière est une sorte de sous-ensemble de la colonne précédente. Je dois valider si la somme du sous-district et du district au niveau rural, urbain et total. Par exemple: La somme des lignes 7 et 8 est égale à la valeur de la ligne 5. La ligne 5 est un sous-district rural. Comme nous étendons la DF, j'ai beaucoup de sous-districts ruraux. La somme de tous les sous-districts ruraux est donnée dans le district rural, qui est rangée 2.
Une sortie attendue minimale sera comme suit:
District Subdistt TRU Level No_HH
1 Adilabad Tamsi Rural Sub-District 364
2 Adilabad Tamsi Urban Sub-District 913
364 est une somme de 117 + 247 donné l'exemple minimal ci-dessus et 913 est la somme de la somme des lignes 614 + 299 donnée dans l'exemple minimal.
Actuellement, je suis en mesure de sous-ensemble à une valeur particulière, mais je ne sais pas comment faire une somme basée sur ces sélections complexes. Quelqu'un peut-il aider?
Pouvez-vous montrer la sortie attendue? – akrun
Essayez-vous de trouver 'library (dplyr); df%>% filtre (TRU! = 'Total')%>% group_by _ (. Points = noms (df) [1: 2])%>% summary (No_HH = sum (No_HH)) ' – akrun
@akrun la sortie attendue est la valeur des lignes 1 à 6, où la ligne 5 sera la somme de 7 & 8 et la ligne 5 sera la somme des lignes 9 & 10, la ligne 4 sera la somme des lignes 5 & 6. La valeur de la ligne 1 sera similaire à la somme des lignes ayant une colonne Total dans TRU et Sub-District dans Level. – LeArNr