【发布时间】:2021-12-13 16:04:51
【问题描述】:
我有一个包含 1 个日期列的数据框(转换为.Date)。
我正在尝试编写一个循环来在另一列中创建一个值,以“检查”死亡日期与修复值(今天的日期)的比较。
fix_date= as.Date(2021-10-28)
for (i in 1:length(df$Death.date)) {
if (df$Death.date[i] < as.Date(fix_date)){
df$death_check[i]<-"good"
}
}
所以对于每一行如果 Death.date fix_date,用“good”填充 death_check 列。
它给了我这个错误代码:
if (new_possible_population$Death.date[i]
这是为有关日期值的循环编码的正确方法吗?或者有比使用循环更好的方法吗?
【问题讨论】:
-
从错误消息中听起来就像您在
df$Death.date中缺少值一样。你检查了吗? -
请注意,这可以通过矢量化完成,无需显式循环。它可能会导致更好看的代码:
df$death_check[df$Death.date > fix_date] <- "good"。而且您第二次不必要地调用as.Date(),您已经使用as.Date()创建了fix_date,尽管您可能也缺少""s。