【发布时间】:2015-12-29 09:11:01
【问题描述】:
下面是一个简单的for循环:
TSDF 属于“POSIXct”“POSIXt”类型,包含时间戳列表。 LISTY 是一个包含时间戳及其各自值的列表。 使用下面的 FOR 循环,我需要遍历 TSDF 的整个长度,无论 TSDF 中的哪个时间戳在 DF 中也可用,我需要将它的值分配给 newval。下面的代码工作得很好,但如果 TSDF 太长,则需要很长时间。有什么建议可以优化此代码吗?提前致谢。欣赏。
for(i in 1:length(TSDF))
{
if(any(TSDF[[i]]==LISTY[[1]][,"DATETIMEST"]))
{
newval = LISTY[[1]][which(TSDF[[i]]==LISTY[[1]][,"DATETIMEST"]),"VALUE"]
}
else{newval = oldval}
if(any(TSDF[[i]]==LISTY[[2]][,"DATETIMEST"]))
{
newval = LISTY[[2]][which(TSDF[[i]]==LISTY[[2]][,"DATETIMEST"]),"VALUE"]
}
else{newval = oldval}
}
【问题讨论】:
-
请包含示例数据集
TSDF和LISTY。 -
这个问题在codereviews上可能更合适
-
TSDF
-
列表
标签: r list optimization any