【发布时间】:2015-09-26 11:18:06
【问题描述】:
我一直致力于根据 R 中的某些记录是否比昨天更新来标记它们,但我要么只返回零,要么得到一个错误。
我有一个列出我所有商店的数据框。我有另一个数据框,列出了他们所有的商店级销售记录(通常是截至昨天的 30 天报告)。我每天都会收到销售报告。我想在商店列表中放置一个标志,表明我昨天是否收到了该商店的销售报告记录。
为了创建日期,我使用了这段代码(使用 lubridate 包):
today <- as.Date(today(), format= "%m/%d/%Y")
yesterday <- today-1
然后我使用 if 语句来遍历代码:
for(i in 1:length(storelist[,1])){
if ((storelist$Store_NO[i] %in% storesales$Store_No) && (storesales$Calendar.Date == yesterday))
(storelist$Flag[i] <- 1)
else (storelist$Flag[i] <- 0)
}
注意:storesales 数据框中的日期以 m/d/y 为单位,但我不确定这是否会产生影响。
但是,当我这样做时,所有“标志”列都填充了零,尽管我知道昨天至少有一两个报告了销售额。
我该如何解决这个问题?在 excel 中,这将是一个非常简单的 SUMIF(其中第一个标准是商店编号,第二个标准是日期),但我无法将其转换为 R。
感谢大家的帮助!
【问题讨论】:
标签: r date if-statement for-loop logic