为数据帧分配R中的循环

为数据帧分配R中的循环,r,for-loop,R,For Loop,在运行for循环后,我无法分配到数据帧。当我使用打印时,请给出我的值,有什么解释吗 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

在运行for循环后,我无法分配到数据帧。当我使用打印时,请给出我的值,有什么解释吗

 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

salesdate您将矢量化处理与索引化处理混合在一起。在第一个示例中,将(length…)中的一个数字指定给测试的所有元素,覆盖每个周期上的数字。只打印最后一份作业

比如:

test = rep(NA,length(new))

for (i in new)
  test[i] = your number

会有用的。正如Paul提到的,代码不是很R-ish,但是由于您没有提供MSALE,我不能给您一个更好的例子。

您能解释一下您想要实现什么吗?通常有比使用
for
循环更简单的选择。请提出您的问题,即提供一些虚拟数据-这使帮助您变得更容易。干杯