fd我和R一起工作,这是我的困境。
这个故事的要点是我需要两次不同的时间,将时间分成中间,并希望创建一个单独的列,分时间。我有这个公式:
burglary$midtime <- as.POSIXct((as.numeric(burglary$BegDate) + as.numeric(burglary$EndDate)) / 2, origin = '1970-01-01')
打嗝不是所有时间都有和结束时间。因此,如果它没有和结束时间我只想用开始时间填充它。我想出了下面的if / else语句,但它只是用拆分时间填充列,并将其他列留空。
if(!is.null(burglary$EndDate)) {
burglary$midtime <- as.POSIXct(burglary$BegDate)
} else {
burglary$midtime <- as.POSIXct((as.numeric(burglary$BegDate) +
as.numeric(burglary$EndDate)) / 2, origin = '1970-01-01')
}
知道我做错了吗?
答案 0 :(得分:0)
Taylor H,谢谢你指出我正确的方向。 ifelse的声明有效,但它将日期和时间抽取为数字。
我最终使用dplyr库library(dplyr)
,它保持日期和时间不变。最终代码如下。再次感谢您的帮助!
burglary$midTime <- if_else(!is.na(burglary$EndDate), as.POSIXct((as.numeric(burglary$BegDate) + as.numeric(burglary$EndDate)) / 2, origin = '1970-01-01'), as.POSIXct(burglary$BegDate))