【发布时间】:2014-02-13 09:32:06
【问题描述】:
在运行 for 循环后,我无法分配给数据帧。当我使用 print 时,它给出了我的价值,有什么解释吗?
salesdate<-rep(seq(from=as.Date("2013-12-19"),to=as.Date("2013-12-23"),by=1),100)
memberid<-as.factor(sample(1:1000,500))
msales<-data.frame(salesdate,memberid)
new<-seq(from=as.Date("2013-12-19"),to=as.Date("2013-12-23"),by=1)
for(i in new)
+ print(length(unique(msales[(msales$salesdate>="2013-12-23" | msales$salesdate>=i),]$memberid)))
[1] 500
[1] 400
[1] 300
[1] 200
[1] 100
test <- rep(NA,length(new))
new<-seq(from=as.Date("2013-12-19"),to=as.Date("2013-12-23"),by=1)
for(i in new)
+ test[1:5]<-length(unique(msales[(msales$salesdate>="2013-12-23" | msales$salesdate>=i),]$memberid))
> test
[1] 100 100 100 100 100
我创建了一些示例。我的目标是从当前日期开始计算每个日期期间的唯一 ID 数量。谢谢你们的指导,伙计们。
【问题讨论】:
-
您能解释一下您要完成的工作吗?通常有比使用
for循环更简单的替代方法。 -
请同时提出您的问题reproducible,即提供一些虚拟数据 - 这样可以更轻松地为您提供帮助。干杯。