通过其他日期列 (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")))
我有一个类似于此的 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")))