0

I have found numerous solutions for assigning a given row's value to all rows within that group (e.g., here), but all of these apply to rows with numerical values.

I have a dataframe ('df') of union membership. The column, COUNTY, contains the distinct county FIPS code for every union and has no missing values. However, the column, COUNTY_NAME, contains many missing values. I want to fill in those missing values with the county name used for other rows in that same county.

In other words, this is what COUNTY_NAME in my current dataset looks like:

   UNION_NAME                                        MEMBERS COUNTY COUNTY_NAME
   <fct>                                               <dbl>  <dbl> <chr>      
 1 COMMUNICATIONS WORKERS AFL-CIO                      131     1001 Autauga AL 
 2 PACE, AFL-CIO                                        33     1001 Autauga AL 
 3 STEELWORKERS, AFL-CIO                               164     1001 NA 
 4 STEELWORKERS, AFL-CIO                               138     1001 Autauga AL 
 5 GRAPHIC COMMUNICATIONS, IBT                          11     1001 NA         
 6 SHEET METAL, AIR, RAIL AND TRANSPORTATION WORKERS    48     1001 NA         
 7 RAILROAD SIGNALMEN AFL-CIO                           41     1003 Baldwin AL 
 8 STEELWORKERS, AFL-CIO                                78     1003 NA 
 9 TRANSPORTATION UNION IND                             29     1003 Baldwin AL 
10 SHEET METAL, AIR, RAIL AND TRANSPORTATION WORKERS   114     1003 NA

I would like COUNTY_NAME column to look like this, instead:

   UNION_NAME                                        MEMBERS COUNTY COUNTY_NAME
   <fct>                                               <dbl>  <dbl> <chr>      
 1 COMMUNICATIONS WORKERS AFL-CIO                      131     1001 Autauga AL 
 2 PACE, AFL-CIO                                        33     1001 Autauga AL 
 3 STEELWORKERS, AFL-CIO                               164     1001 Autauga AL
 4 STEELWORKERS, AFL-CIO                               138     1001 Autauga AL 
 5 GRAPHIC COMMUNICATIONS, IBT                          11     1001 Autauga AL        
 6 SHEET METAL, AIR, RAIL AND TRANSPORTATION WORKERS    48     1001 Autauga AL         
 7 RAILROAD SIGNALMEN AFL-CIO                           41     1003 Baldwin AL 
 8 STEELWORKERS, AFL-CIO                                78     1003 Baldwin AL
 9 TRANSPORTATION UNION IND                             29     1003 Baldwin AL 
10 SHEET METAL, AIR, RAIL AND TRANSPORTATION WORKERS   114     1003 Baldwin AL

Any advice would be appreciated--thanks!

trinitysara
  • 175
  • 1
  • 8

1 Answers1

1

You can try a solution with tidyverse function fill() from tidyr. Here the code:

library(tidyverse)
#Code
df %>% group_by(COUNTY) %>% fill( COUNTY_NAME)
Duck
  • 39,058
  • 13
  • 42
  • 84