想要用 R 中另一个类别的重复值来改变一个类别的值

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

我有一个天气数据集,在名为“城市”的列中包含分类值。其中,城市“艾哈迈达巴德”在 2019 年完全缺失值。搜索后我发现“海得拉巴”是同年值的两倍。我想从“Hyderabad”中提取pic of duplicate entries 一组值并将其放入“Ahmedab​​ad”

您可以尝试这种方法,使用 tidyverselubridate

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

或者,使用 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"]
)