簡體   English   中英

r函數,否則為變量賦值

[英]r function if else assign value to variable

fd我正在使用R,這是我的難題。

故事的要旨是我正在兩次不同的時間,在中間划分時間,並想用該划分時間創建一個單獨的列。我已經用這個公式得出了:

 burglary$midtime <- as.POSIXct((as.numeric(burglary$BegDate) + as.numeric(burglary$EndDate)) / 2, origin = '1970-01-01')

並非所有時間都有打and和結束時間。 因此,如果沒有開始時間和結束時間,我只想填充開始時間即可。 我在下面的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')
}

知道我在做什么錯嗎?

泰勒·H,謝謝您為我指明了正確的方向。 ifelse語句有效,但是它減少了將日期和時間轉換為數字的日期和時間。

我最終使用了dplyr庫library(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))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM