Want to mutate values of one category with duplicate values from another category in R

27 Views Asked by At

I have a Weather dataset with categorical values in a column named "City". In that, a city "Ahmedabad" is missing values entirely for the year 2019. Upon searching I found that "Hyderabad" double the number of values for the same year. I would like to extractpic of duplicate entries one set of values from "Hyderabad" and place that in "Ahmedabad"

1

There are 1 best solutions below

0
On BEST ANSWER

You could try this approach, using tidyverse and lubridate

library(tidyverse)
library(lubridate)

dt = dt %>% arrange(City, Date)
bind_rows(
  dt %>% filter(City!="Hyderabad" | year(Date)!=2019),
  dt %>% filter(City=="Hyderabad" & year(Date)==2019) %>% 
    mutate(City=if_else(row_number()%%2==0,"Ahmedabad", City))
)

Or, using data.table

library(data.table)

dt = setDT(dt)[order(City,Date)]
rbind(
  dt[City!="Hyderabad" | year(Date)!=2019],
  dt[City=="Hyderabad" & year(Date)==2019][seq(1,.N,2), City:="Ahmedabad"]
)