if()简单的循环代码

时间:2014-03-22 03:11:27

标签: r loops for-loop nested-loops

说我有两个数据集。我打电话给我的第一列火车,这里是变量

month = c(1,1,1,2,2,2,3,3,3,4,4,4)
day=c(3,8,12,3,8,12,3,8,12,3,8,12)
trend=c(0.1,0.2,0.3,0.4,0.5,0.4,0.3,0.2,0.1,0.2,0.3,0.4) 


train=cbind(month,day,trend)

并且说我的第二组叫做test,它有月和日变量

tsmonth = c(1,2,2,3,3,3,4,4,4)
tsday=c(3,3,12,3,8,12,3,8,12)

现在我想使用训练数据中的值填写测试集的趋势部分 例如: 在我的测试集中,1月3日,趋势值为0.1   我的测试中的第一个值应该是0.1 所以最后我应该得到一个

tstrend = 0.1,0.4,0.4 ....等等

我尝试编写类似这样的内容,但它给了我一个错误信息,我真的不知道该在这里改变什么

tstrend=rep(0,length(tsmonth))
for (i in 1:length(tsmonth)){
for (j in 1:length(month)){
if (tsday[i] = day[j] & tsmonth[i] =month[j])
{
tstrend[i] = trend[j]
}
}
}

我非常感谢你的帮助。

谢谢你, 甲

1 个答案:

答案 0 :(得分:0)

我不太明白你想要做什么,但我肯定看到if()语句有问题,它应该是:

if (tsday[i] == day[j] && tsmonth[i] == month[j])

==进行比较 =分配值

在大多数语言中: 布尔表达式&&另一个布尔表达式 - >布尔值(true / false)和

ex:true&&是的 - >真

位阵列&位阵列2 - >按位和

ex:0011& 0101 - > 0001