首页 > 解决方案 > 使用 ifelse 基于日期范围的新字符值

问题描述

我有一些数据的名称我试图根据某些日期范围重命名。目前我没有结束日期,但将来会有,所以有两个选项会很好。如果将日期强制转换为数字格式,我可以将其转换回日期,ifelse()除非有更好的方法。我是否只需要先转换为数字并找出与我的日期范围相对应的数字,运行ifelse(),然后在完成后转换回日期?我试图从中获得一些见解,但我不确定它是否对我有用。 R中具有多个条件的Ifelse语句

structure(list(Serial = c("580300", "380201", "380201", "480862", 
"480862", "480862"), Name = c("Gomex", "Clammy", 
"Clammy", "Channel Islands", "Channel Islands", "Channel Islands"
), Date = structure(c(1476928800, 1553619600, 1476932400, 1503777600, 
1476936000, 1604070000), class = c("POSIXct", "POSIXt"), tzone = "")), row.names = c(NA, 
6L), class = "data.frame")

我正在尝试做这样的事情......

vue$Name <- ifelse(vue$Serial == "480862" & Date >= "2019-8-23 10:00:00", "newname", vue$Name)
Error in Date >= "2019-8-23 10:00:00" : 
  comparison (5) is possible only for atomic and list types

标签: rdateif-statement

解决方案


我发现了问题vue$Name <- ifelse(vue$Serial == "483689" && vue$Date >= "2019-8-23 10:00:00", "newname", vue$Name)

我错过了第二个&vue$之前Date


推荐阅读