Я пытаюсь отфильтровать кадр данных с большой интенсивностью сигнала, используя список диапазонов одной переменной (положение хромосомы) в кадре данных.Всего в списке 256 диапазонов, с начальной и конечной позициями.Я могу успешно отфильтровать кадр данных, используя один диапазон, но, похоже, я не могу заставить его зацикливаться на всем кадре данных.
DT - это исходный кадр данных интенсивности сигнала (SNP, Chr, Position, Intensity Ratio)и PR - это два столбца данных с начальным и конечным положением:
Chr Start End
1 130104 207101
1 1423247 4459324
1 6543121 7924836
Эта строка кода работает для извлечения данных из одного диапазона:
test <- DT %>% filter(Chr %in% ("1")) %>% filter(Position %in% c(PR$Start[1]:PR$End[1]))
Это НЕ работает:
for (i in 1:nrow(PR)){
help <- DT %>% filter(Chr %in% ("1")) %>% filter(Position %in% c(PR$Start[i]:PR$End[i]))
}
Приведенный выше код создает кадр данных со случайным выбором данных, который не соответствует диапазону позиций.
Это также не работает:
range = data.table(start=PR$Start,end=PR$End)
x <- DT[Position %inrange% range]
Заранее спасибо!