在 R 中重新编码特定日期

recode specific dates in R

我想将数据集中的所有日期 2006-04-11 更改为 2006-04-01。我将日期变量转换为一个因子,将 2006-04-11 重新编码为 2006-04-01,然后将变量重新转换回 class = date。

当变量是一个因子时重新编码有效(所有 2006-04-11 日期都更改为 2006-04-01),但在转换回 class = 日期后,变量再次出现作为 2006-04-11。

将日期变量转换为因子并检查它是否有效。

data$review_date<-as.factor(data$review_date)
class(data$review_date)

将因子变量重新编码为我想要的日期 (2006-04-01) 并查看数据。

recode_factor(data$review_date, '2006-04-11' = "2006-04-01")
data$review_date

将变量从因子转换回日期,检查 class,并查看数据。

data$review_date <- as_date(data$review_date,"%y/%m/%d")
class(review_date)
str(data)
data$review_date

或者,我愿意完全删除所有日期的日期部分,但我还不知道该怎么做。

recode_factor() 不会更新 data 中的值。您必须重新分配结果,例如:

data$review_date <- recode_factor(data$review_date, '2006-04-11' = "2006-04-01")

...所以它可以覆盖原始值。

整个过程也可以只是一个简单的替换操作。例如:

data <- data.frame(review_date = as.Date(c("2006-04-11","2001-01-01")))
data$review_date[data$review_date == "2006-04-11"] <- "2006-04-01" 

(是的,这将给出一个适当的 Date class 变量)