想要用 R 中另一个类别的重复值来改变一个类别的值
Want to mutate values of one category with duplicate values from another category in R
我有一个天气数据集,在名为“城市”的列中包含分类值。其中,城市“艾哈迈达巴德”在 2019 年完全缺失值。搜索后我发现“海得拉巴”是同年值的两倍。我想从“Hyderabad”中提取pic of duplicate entries 一组值并将其放入“Ahmedabad”
您可以尝试这种方法,使用 tidyverse
和 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))
)
或者,使用 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"]
)
我有一个天气数据集,在名为“城市”的列中包含分类值。其中,城市“艾哈迈达巴德”在 2019 年完全缺失值。搜索后我发现“海得拉巴”是同年值的两倍。我想从“Hyderabad”中提取pic of duplicate entries 一组值并将其放入“Ahmedabad”
您可以尝试这种方法,使用 tidyverse
和 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))
)
或者,使用 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"]
)