econ_grad12345
econ_grad12345

Reputation: 43

Generating new variable based on condition and using R

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.

Upvotes: 0

Views: 46

Answers (1)

Mohamed Desouky
Mohamed Desouky

Reputation: 4425

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'))

Upvotes: 1

Related Questions