2014-02-13 81 views
0

我有一个测试向量,我可以在计算加权平均值之前为每个向量选择权重。R - ifelse条件查询

我有一个向量x = x它是:0.97109891 1.02659028 0.05549137

以我功能,我执行此,该权重分配到一个新的向量:

 newVec <- ifelse(x < 1, 1, 
     ifelse(((1 <= x) && (x < 2)), 0.5, 0)) 

的newVec作为返回:1 0 1 ..

这意味着第二个条件是作为False出现并返回0当它应该是True并返回1。 (新载体应该是:1, 0.5, 1似乎1 <= 1.0265902

我测试过它的程序之外和结果回来为真正的...所以,除非我的东西监督我不能工作了,为什么它不” t工作在功能...

任何帮助将是伟大的。提前致谢。

+0

ifelse是矢量化的。与&&一起使用是没有意义的。你应该得到一个警告ix x大于1的长度,只有x的第一个元素被使用。 &而不是&&是矢量化的 – lebatsnok

回答

2

&&只检查矢量的第一个值。使用&来检查元素。

+0

糟糕。愚蠢的错误。问题解决了。感谢发布。 – Reanimation