提问人:Sulz 提问时间:5/10/2022 更新时间:5/10/2022 访问量:31
按其他日期列 (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 来计算开始和结束的时间时。当开始或结束为 NA 时,不会发生任何事情。
我尝试了这样的事情:
df[, df$A [is.na(df[, df$A])]] <- difftime(df$end, df$start, units = "hours")
但这给了我错误:选择了未定义的列。
有人有想法吗?谢谢。
答:
2赞
akrun
5/10/2022
#1
创建一个索引,其中有 “A” 列,根据索引对 'start'、'end' 进行子集,获取并赋值NA
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")))
下一个:按行和列 R 合并 df
评论
end