Выберите более высокие значения из двух столбцов после извлечения числа, 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