#' Racial identity imputation from last name.
#' @return The percent of individuals who identified themselfs as White, Balck, Asian and Indian American/Native American
#' @import dplyr
#' @export
# I need to correct and change "match" with "grep"
raceCensus2000 = function(last.name){
# Move to character and save original names inserted to the function:
last.name = as.character(last.name)
last.name.original = last.name
# Move to upper case letters to match census records:
last.name = toupper(last.name)
# Match to census names
index.match = match(last.name,census00$name)
# generate missing values for the non-matched names
if (sum(is.na(index.match))>0){
results.na = data.frame(name.last=last.name[which(is.na(index.match))],
black.impute = NA,
white.impute = NA,
asian.impute = NA,
aian.impute = NA,
percent.black = NA,
percent.white = NA,
percent.asian = NA,
percent.aian = NA,
percent.two.race = NA,
count = NA
)
}
results <- census00 %>%
slice(index.match) %>%
mutate(
black.impute = as.numeric(percent.black>percent.white & percent.black > percent.asian & percent.black>percent.aian),
white.impute = as.numeric(percent.white>percent.black & percent.white>percent.asian & percent.white>percent.aian),
asian.impute = as.numeric(percent.asian>percent.white & percent.asian>percent.black & percent.asian>percent.aian),
aian.impute = as.numeric(percent.aian>percent.white & percent.aian>percent.black & percent.aian>percent.asian)
) %>%
select(-percent.hispanic)
# Adding the non-matched names to the results data frame
if (sum(is.na(index.match))>0){
results = rbind(results,results.na)
}
results = results[order(results$name.last),]
# Add the original names:
results$last.name.original = last.name.original[order(last.name.original)]
return(results)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.