0

I am attempting to generate a new variable with conditions in R. But my error is not making any sense. I think my code is right but this is the error I am producing, I don't see any other examples of how to generate variable.

Error: LHS of case 1 ("PA") must be a logical vector, not a character vector.

sam_data_final %>%
  mutate(year = case_when(physicaladdress.stateorprovincecode = "PA" ~ '1997',
                          physicaladdress.stateorprovincecode = "GA"  ~ '1998',
                          physicaladdress.stateorprovincecode = "UT"  ~ '1999', 
                          physicaladdress.stateorprovincecode = "DE" ~ '2000', 
                          physicaladdress.stateorprovincecode = "HI" ~ '2000' , 
                          physicaladdress.stateorprovincecode = "MD" ~ '2000',
                          physicaladdress.stateorprovincecode = "ID" ~ '2001', 
                          physicaladdress.stateorprovincecode = "SC" ~ '2001', 
                          physicaladdress.stateorprovincecode = "TX" ~ '2001', 
                          physicaladdress.stateorprovincecode = "LA" ~ '2003',
                          physicaladdress.stateorprovincecode = "VT" ~ '2003',
                          physicaladdress.stateorprovincecode = "AR" ~ '2003', 
                          physicaladdress.stateorprovincecode = "OH" ~ '2004', 
                          physicaladdress.stateorprovincecode = "NE" ~ '2006',
                          physicaladdress.stateorprovincecode = "NH" ~ '2007', 
                          physicaladdress.stateorprovincecode = "MI" ~ '2008', 
                          physicaladdress.stateorprovincecode = "NY" ~ '2010', 
                          physicaladdress.stateorprovincecode = "FL" ~ '2012', 
                          physicaladdress.stateorprovincecode = "NM" ~ '2015', 
                          physicaladdress.stateorprovincecode = "CO" ~ '2016', 
                          physicaladdress.stateorprovincecode = "VA" ~ '2016'))

Thank you.

Phil
  • 7,287
  • 3
  • 36
  • 66
  • Please share a reproducible example e.g. (`dput(sam_data_final)`) – CRP Jul 23 '22 at 22:31
  • Does this answer your question? [What is the difference between = and ==?](https://stackoverflow.com/questions/28176650/what-is-the-difference-between-and) – harre Jul 24 '22 at 12:44

1 Answers1

1

You have to use == equality operator for comparison in case_when statement which must be logical (TRUE or FALSE) , = used to assign value to object

sam_data_final %>%
  mutate(year = case_when(physicaladdress.stateorprovincecode == "PA" ~ '1997',
                          physicaladdress.stateorprovincecode == "GA"  ~ '1998',
                          physicaladdress.stateorprovincecode == "UT"  ~ '1999', 
                          physicaladdress.stateorprovincecode == "DE" ~ '2000', 
                          physicaladdress.stateorprovincecode == "HI" ~ '2000' , 
                          physicaladdress.stateorprovincecode == "MD" ~ '2000',
                          physicaladdress.stateorprovincecode == "ID" ~ '2001', 
                          physicaladdress.stateorprovincecode == "SC" ~ '2001', 
                          physicaladdress.stateorprovincecode == "TX" ~ '2001', 
                          physicaladdress.stateorprovincecode == "LA" ~ '2003',
                          physicaladdress.stateorprovincecode == "VT" ~ '2003',
                          physicaladdress.stateorprovincecode == "AR" ~ '2003', 
                          physicaladdress.stateorprovincecode == "OH" ~ '2004', 
                          physicaladdress.stateorprovincecode == "NE" ~ '2006',
                          physicaladdress.stateorprovincecode == "NH" ~ '2007', 
                          physicaladdress.stateorprovincecode == "MI" ~ '2008', 
                          physicaladdress.stateorprovincecode == "NY" ~ '2010', 
                          physicaladdress.stateorprovincecode == "FL" ~ '2012', 
                          physicaladdress.stateorprovincecode == "NM" ~ '2015', 
                          physicaladdress.stateorprovincecode == "CO" ~ '2016', 
                          physicaladdress.stateorprovincecode == "VA" ~ '2016'))
Mohamed Desouky
  • 4,340
  • 2
  • 4
  • 19