[英]R - compare two columns with NAs
我有這個數據框:
df <- read.table(text="
date1 date2
1 NA 2016-12-01
2 2017-01-01 2018-10-01
3 2016-12-01 NA
4 NA NA
", header=TRUE)
我需要創建新的“ max_date”列,其中將包含最大的date1 / date2列。 請注意,在某些行中是NA值,在某些情況下,兩列中都是NA。
我試圖用一些if_else來實現,但是代碼太復雜了。 結果應該是
result <- read.table(text="
date1 date2 max_date
1 NA 2016-12-01 2016-12-01
2 2017-01-01 2018-10-01 2018-10-01
3 2016-12-01 NA 2016-12-01
4 NA NA NA
", header=TRUE)
您可以使用pmax
:
transform(df, max_date = pmax(as.Date(date1), as.Date(date2), na.rm = TRUE))
# date1 date2 max_date
# 1 <NA> 2016-12-01 2016-12-01
# 2 2017-01-01 2018-10-01 2018-10-01
# 3 2016-12-01 <NA> 2016-12-01
# 4 <NA> <NA> <NA>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.