Я попытался написать нижеприведенный код, чтобы идентифицировать числа в пределах диапазона, то есть: SNP [i, 1] должен быть меньше Рабочего [j, 1] и больше, чем Working [j, 2 ] для добавления в новый фрейм данных.Ошибка с анализируемыми данными в R
Файл SNP - 350 строк, а рабочий - 6500. По какой-то причине я получаю 10000 строк с данными, которые не соответствуют моим условным.
Очевидно ли, что у меня здесь что-то не так?
for (i in 1:nrow(SNP_file)){
for (j in 1:nrow(Working)){
if ((as.numeric(SNP_file[i,1]) >= as.numeric(Working[j,1])) && (as.numeric(SNP_file[i,1]) <= as.numeric(Working[j,2]))){
New <- rbind(New, data.frame(Chromosome =Working[j, 1],
Start= Working[j, 2],
Stop = Working[j, 3],
GO = Working[j,4],
Position = VCF[i,1],
REF = SNP_file[i,2],
GT = SNP_file[i,3],
Site_Conf = SNP_file[i,4]
))
}}}
Спасибо,
J
Как О.П. примечаниями, есть 350 строк в * SNP файл * и 6500 в * Рабочий * файл. Ваш код решает проблему для строк с одинаковыми индексами. Однако неясно, что нужно делать с другими 6150 строками * Рабочего * файла. Я что-то упускаю? (Мне кажется, что OP хотел отфильтровать один файл, используя информацию из другой, хотя это четко не указано.) – Daniel
@ Даниэль Да, они должны это уточнить. На данный момент подмножество 'Working' для первых 350 строк будет производить сравнение« один к одному ». –