for loop Octave。合并不同大小的数据集

时间:2016-01-06 10:56:13

标签: loops for-loop merge octave

在newvars.xls中,我对美国每个州的失业率(失业率)和酒精消费指数(alc)持续了19年。我还有一个州(2位FIPS代码)和年份指数(1994-2012)。

在stataset.xls中,我有一个县的索引(完整的FIPS代码),状态的索引(与之前相同)和一年的索引(与之前相同)。我每个县有19年的索引观察结果。

我希望将newvars.xls中的unemp和alc的州年观察与stataset.xls中的每个县级观察相匹配。基本上它意味着对于每个状态,我必须重复(垂直堆叠)19个观察的序列,与我的县一样多次,并按正确的顺序进行。当然,每个州的县数量各不相同。

首先:两个表的维度是: newvars = 950x4和 stataset = 58000(大致)X3 但八度音阶给了我

size newvars
ans =

   1   7

size stataset
ans =

   1   8

为什么到地球?

其次,我设计了以下循环来完成这个技巧:

newvars= xlsread('/Project/newvars.xls');

stataset=xlsread('/Project/stataset.xls')



unemp=stataset(:,1)
alc=unemp

for i=stataset(:,2) %column 2: state index
    for j=newvars(:,1) %column 1: state index
        if stataset(i,2)=newvars(j,1)
            unemp=newvars(j,3) %column 3: unemployment inde
            alc=newvars(j,4)    %column 4: alcohol cons index
        endif
    end
end

但是我收到了一个错误:

warning: suggest parenthesis around assignment used as truth value
error: A(I,J,...) = X: dimensions mismatch

我该如何解决这个问题?为什么矢量的维数在循环中甚至重要,因为我在比较各个值?它只是一个语法错误还是存在逻辑缺陷? 谢谢你的帮助!

0 个答案:

没有答案