Выберите более высокие значения из двух столбцов после извлечения числа, R

У меня есть фрейм данных (451 из 8 переменных), который имеет два столбца (6 и 7), которые выглядят так:

  Major      Minor
  C:726      T:2
  A:687      G:41
  T:3        C:725

Я хочу создать один столбец, который суммирует это. Для этого мне не нужны буквы в каждой ячейке, но я хочу, чтобы большее число оставалось, в какой бы строке оно ни находилось, т.е. я хочу, чтобы оно выглядело так:

  Summary_column
  726
  687
  725

Не обязательно, но для тех, кто интересуется, что я делаю, это вывод программы VCFtools; у него есть функция подсчета, которая подсчитывает аллели в VCF, но иногда он называет аллель "второстепенным", когда он явно более распространен.

Спасибо за вашу помощь!

1 ответ

Решение

Я бы сделал что-то вроде этого:

extract <- function(v) {
  gsub("^.*:", "", v)
}
within(d, Summary_column <- pmax(extract(Major), extract(Minor)))

Который дает:

  Major Minor Summary_column
1 C:726   T:2            726
2 A:687  G:41            687
3   T:3 C:725            725
Другие вопросы по тегам