1

如何组合两列,以使一列中的值替换另一列中的 NA?

初始数据框

date1                         date2
2016-08-29 02:31:34            NA
NA                      2016-08-29 17:59:23

转换后的数据框

date1                         date2                     Newdate
2016-08-29 02:31:34            NA                 2016-08-29 02:31:34 
NA                      2016-08-29 17:59:23       2016-08-29 17:59:23
4

2 回答 2

2

尝试dplyr::coalesce(...)

数据 - 注释coalesce不适用于因子

df <- read.table(text="date1,date2
2016-08-29 02:31:34,NA
NA,2016-08-29 17:59:23", header=TRUE, sep=",", stringsAsFactors=FALSE)

解决方案

df$dates <- dplyr::coalesce(df$date1, df$date2)
                # date1               date2               dates
# 1 2016-08-29 02:31:34                <NA> 2016-08-29 02:31:34
# 2                <NA> 2016-08-29 17:59:23 2016-08-29 17:59:23
于 2018-05-11T15:20:37.223 回答
0

试试下面的代码:

# Simulating your data
date1 <- c("2016-08-29 02:31:34", NA)
date2 <- c(NA, "2016-08-29 17:59:23")
df <- data.frame(date1, date2, stringsAsFactors = FALSE)

# Actual solution
Newdate <- df$date1 # Copy the values from date1
Newdate[is.na(df$date1)] <- date2[is.na(df$date1)] # Replace every position where date1 is NA.
df$Newdate <- Newdate # Create the new column
print(df)

希望能帮助到你!:)

于 2018-05-11T15:12:08.077 回答