Мои данные выглядят примерно так
start end strand
45 52 +
66 99 -
Назовем эту таблицу1.
Если у меня есть + в цепочке, я должен вернуть два значения, которые составляют +/- 10 от начального значения.
Итак, здесь я должен вернуть 55 и 35.
Если у меня есть строка -in, я должен вернуть два значения, которые составляют +/- 10 от конечного значения.
Для этого я написал эту программу:
if(table1$strand == '+'){
newstart = table1$start - 10
newend = table1$start + 10
} else {
newstart = table1$end - 10
newend = table1$end + 10
}
Но я получаю это предупреждающее сообщение:
условие имеет длину > 1 и будет использоваться только первый элемент
Есть ли способ избежать этого с помощью векторизованных методов?
table1$strand == '+'
повторно настраивает логический вектор, и только его первое значение используется для оценки оператора if. Объясните, пожалуйста, чего вы ожидаете в результате на приведенном выше примере? - person DrDom   schedule 12.08.2014