2014-02-13 6 views
0

У меня есть тестовый вектор, на который я выбираю вес для каждого, прежде чем вычислять средневзвешенное значение.R - запрос условия ifelse

У меня есть вектор х = 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 lengt x больше 1 и используется только первый элемент x. & в отличие от && векторизован – lebatsnok

ответ

2

&& проверяет только первое значение вектора. Используйте & для проверки элемента.

+0

К сожалению. Глупая ошибка. Задача решена. Спасибо за публикацию. – Reanimation

Смежные вопросы