【发布时间】:2021-01-27 18:33:55
【问题描述】:
我有一些数据的名称我正试图根据特定日期范围重命名。目前我没有结束日期,但将来会有,所以有两个选项会很好。如果ifelse() 将日期强制转换为数字格式,我可以将其转换回日期,除非有更好的方法。我是否只需要先转换为数字并找出与我的日期范围相对应的数字,运行ifelse(),然后在完成后转换回日期?我试图从中获得一些见解,但我不确定它是否对我有用。 Ifelse statement in R with multiple conditions
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
【问题讨论】:
-
我无法重现您的原始错误,但我认为您在尝试中遗漏了一些提取运算符
$和不一致的列名vue$name <- ifelse(vue$Serial == "480862" & vue$Date >= "2019-08-23 10:00:00", "newname", vue$Name) -
@EJJ 你是对的,谢谢你捡起这个,我修正了错别字,但同样的错误仍然存在。
标签: r date if-statement