通过其他日期列 (R) 中的信息填充缺失的变量

Fill missing Variables by Information from other date columns (R)

我有一个类似于此的 Dataframe:

set.seed(42)   
start <- Sys.Date() + sort(sample(1:10, 5))
set.seed(43)
end <-  Sys.Date() + sort(sample(1:10, 5))
end[4] <- NA
A <- c("10", "15", "NA", "4", "NA")
B  <- rpois(n = 5, lambda = 10) 
df <- data.frame(start, end, A, B)

我想,当 A 列中有一个 NA 时,计算开始和结束的时间。当 start 或 end 为 NA 时,什么都不会发生。

我试过类似的东西:

df[, df$A [is.na(df[, df$A])]] <- difftime(df$end, df$start, units =  "hours")

但这给了我错误:选择了未定义的列。

有人有想法吗?谢谢

创建索引,在'A'列中有NA,根据索引对'start'、'end'进行子集,得到difftime和分配回来

df$A <- as.numeric(df$A)
i1 <- is.na(df$A)
df$A[i1] <-  with(df, as.numeric(difftime(start[i1], end[i1], units = "hours")))