Home > Software design >  How can I calculate the sum for specific cells?
How can I calculate the sum for specific cells?

Time:12-22

I want to sum up the Population and householders for NH_AmIn, NH_PI, NH_Other, NH_More as a new row for each county. How can I do that?

enter image description here

CodePudding user response:

A dplyr approach using dummy data, you would have to expand on this. Its filtering to the focal races, grouping by county, getting the sum of population for the filtered rows and by groups, and appending it to the initial data.

library(dplyr)

set.seed(1)

# demo data
df <- data.frame(county=rep(c("A","B"), each=4), race=c("a", "b", "c", "d"), population=sample(2000:15000, size=8))

# sum by state for subset
df %>% 
  filter(race %in% c("c", "d")) %>%
  group_by(cou ty) %>%
  summarise("race"="total",  "population"=sum(population)) %>% 
  rbind(df)

The solution for yours, if df is the name of your data.frame, is

df %>% 
  filter(Race %in% c("NH_AmIn", "NH_PI", "NH_Other", "NH_More")) %>%
  group_by(County) %>%
  summarise("Race"="total", "Population"=sum(Population), "Householder"=sum(Householder)) %>% 
  rbind(df)

CodePudding user response:

You can use group_by and summarise from tidyverse like:

df %>% group_by(Country, Race) %>%
  summarise(Population=mean(Population), Householder=mean(Householder))

Then combine it with the original dataframe with rbind.

  • Related