2013-05-09 246 views
4

我想将矩阵的列元素与相应的向量列进行比较。R矩阵向量比较

因此,例如,

>ret 

        TLT   VTI 
1995-01-20 -0.005649718 -0.004461441 
1995-01-23 -0.002840909 0.002560820 
1995-01-24 0.000000000 0.000000000 
1995-01-25 0.005698006 0.003831418 
1995-01-26 0.000000000 0.001908397 


>compare.vec 
[1] -0.001 -0.002 

我想是每一个归元在RET 1列与-0.001,找到哪一个是比-0.001更小。对于第二列反之亦然,将其与-0.002进行比较并发现VTI中的元素少于此值。

我试过子集,但它似乎不是一个矢量,而是一个数字。我需要将列循环列吗?

感谢,

+0

你只是想比较还是用-0.001和-0.002取代那些值? – Arun 2013-05-09 19:09:12

+0

nope,只需要返回布尔矩阵。第一列的元素小于-0.001,第二列的元素为-0.002。 – user1234440 2013-05-09 19:12:11

回答

8

所有你需要做的是:

t(t(ret) < compare.vec) 

编辑基于从阿伦评论。

+4

很好的尝试使用回收。但是,我认为这还不算正确。试试ex:'ret Arun 2013-05-09 19:06:27

+0

第一个应该包含2个FALSE,因为该列中的前两个元素小于-0.001 ... – user1234440 2013-05-09 19:14:34

+0

@阿伦啊,我有恐惧会发生......应该检查它。更新你的想法。 – Thomas 2013-05-09 19:16:06