Условная генерация строки в R (для l oop + if / else) - PullRequest
0 голосов
/ 05 мая 2020

Боюсь, я не могу вставить пример кода, так как мой набор данных чувствителен.

После некоторых проблем с нашими исходными файлами мы поняли, что наш исходный файл несовместим с кодированием аллелей и необходимо изменить его, первый шаг, на котором удаляется избыточное значение столбца (иногда это 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 = "_")
}
}
...