说我有两个数据集。我打电话给我的第一列火车,这里是变量
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]
}
}
}
我非常感谢你的帮助。
谢谢你, 甲
答案 0 :(得分:0)
我不太明白你想要做什么,但我肯定看到if()语句有问题,它应该是:
if (tsday[i] == day[j] && tsmonth[i] == month[j])
==进行比较 =分配值
在大多数语言中: 布尔表达式&&另一个布尔表达式 - >布尔值(true / false)和
ex:true&&是的 - >真
位阵列&位阵列2 - >按位和
ex:0011& 0101 - > 0001