【问题标题】:recode specific dates in R在 R 中重新编码特定日期
【发布时间】:2016-11-09 23:39:01
【问题描述】:

我想将数据集中的所有日期 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

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

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

或者,我愿意完全删除所有日期的日期部分,但我还没有弄清楚如何做到这一点。

【问题讨论】:

  • 至于关于完全删除天数的最后一行 - 请参阅存储年/月日期对象的 zoo 包中的 yearmon

标签: r date lubridate recode


【解决方案1】:

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 类变量)

【讨论】:

  • 添加数据$review
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多