【发布时间】:2013-06-30 09:33:35
【问题描述】:
我正在使用 for 循环使用 mycons 向量替换 myarray 的元素子集。每列中的子集将从mydates直到结束。 for 循环是否有替代方案?
mydates <- as.Date(c('2013-06-05','2013-06-16','2013-06-22'))
mycons <- c(0.5,1/7,0.25)
dates <- seq(as.Date('2013-06-01'),Sys.Date(),"days")
myarray <- matrix(rep(1,length(dates)*length(mydates)),length(dates),length(mydates))
for (i in 1:length(mycons)) {
myarray[which(dates>mydates[i]),i] <- mycons[i]
}
【问题讨论】:
-
这真的是你的数据吗?还是这是简化版?因为正如所写的那样,这既快又可能根本不需要
for循环,因为您似乎只是在以一种相当简单的方式重新编码您的数据。 -
那么,您需要有关该错误的帮助吗?如果是这样,请更新您的问题。或者,您想谈谈生成
myarray矩阵的方法吗? -
@Thomas 对不起,我虽然理解你的意思,但现在如果删除
for循环,我无法让代码工作。如果您能帮助我以不同的方式生成myarray,我将不胜感激。 -
通过描述您想要的
myarray应该是什么样子来更新您的问题。然后人们可以帮助您获得预期的结果,而不是解决您在使用此特定代码时可能遇到的任何问题,从表面上看,这并不是获得任何结果的好方法。 -
@Thomas 如果代码是高效的,我就不必在这里问了,但它做了它应该做的事情。无论如何感谢您最初的支持。