r function if if else赋值给变量

时间:2017-09-24 00:57:29

标签: r if-statement

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')
}

知道我做错了吗?

1 个答案:

答案 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))