Боюсь, я не могу вставить пример кода, так как мой набор данных чувствителен.
После некоторых проблем с нашими исходными файлами мы поняли, что наш исходный файл несовместим с кодированием аллелей и необходимо изменить его, первый шаг, на котором удаляется избыточное значение столбца (иногда это REF
, иногда ALT1
), всегда используется третье значение A1
, все три являются символами, а POSITION
- строкой.
Учитывая количество задействованных строк, я попытался настроить al oop следующим образом:
- Go до следующей строки
- Объединить новый идентификатор, используя
A1
и в зависимости от того, что из REF
и ALT1
не равно A1
Выглядит достаточно просто в теории, но просто не будет вести себя; при осмотре кажется, что он правильно улавливает первый экземпляр первой строки, но не остальные.
Я где-то допустил явную ошибку? Спасибо.
# NOTE: reversed in order to match mapping file formatting (equiv. to REF_ALT)
for (i in 1:nrow(Chr1_results.dt)){
if(Chr1_results.dt[i,]$A1 != Chr1_results.dt[i,]$ALT1){
Chr1_results.dt[i,]$POSITION <- paste(Chr1_results.dt[i,]$ID, Chr1_results.dt[i,]$A1, Chr1_results.dt[i,]$ALT1, sep = "_")
} else{
Chr1_results.dt[i,]$POSITION <- paste(Chr1_results.dt[i,]$ID, Chr1_results.dt[i,]$A1, Chr1_results.dt[i,]$REF, sep = "_")
}
}