Вложенные операторы if else для нескольких столбцов

У меня большойdata.frame где первые три столбца содержат информацию омаркер, Остальные столбцы имеют числовой тип для этого маркера в каждом отдельном человеке. У каждого человека есть три столбца. Набор данных выглядит следующим образом:

                      marker alleleA alleleB   X818 X818.1 X818.2   X345 X345.1 X345.2   X346 X346.1 X346.2
1   kgp5209280_chr3_21902067       T       A 0.0000 1.0000 0.0000 1.0000 0.0000 0.0000 0.0000 1.0000 0.0000
2 chr3_21902130_21902131_A_T       A       T 0.8626 0.1356 0.0018 0.7676 0.2170 0.0154 0.8626 0.1356 0.0018
3 chr3_21902134_21902135_T_C       T       C 0.6982 0.2854 0.0164 0.5617 0.3749 0.0634 0.6982 0.2854 0.0164

То есть для каждого маркера (строки) у каждого человека есть три значения, по одному в каждом столбце.

Я хочу создать новыйdata.frame который имеет все те же строки, что и в оригинале, но только один столбец на человека. В одном столбце для каждого человека я хочу получить значение из трех для каждого человека, которое больше 0,8. Если значение не превышает 0,8, я хочу напечатать NA. Например, в наборе данных, который я дал для первой строки, я хотел бы получить второе значение для 818 (1,0000) и первое значение для 345 (1,0000). Во второй строке мне нужно первое значение для 818 (0,8626), а для 345 ни одно из значений не превышает 0,8, поэтому я хочу, чтобы NA печатался и так далее. Поэтому новый набор данных будет выглядеть так:

                     marker alleleA alleleB   X818 X345
1   kgp5209280_chr3_21902067       T       A 1.0000    1
2 chr3_21902130_21902131_A_T       A       T 0.8626   NA

Я пытался использоватьif/else заявления, в соответствии сif [, 4] > 0.8 then [, 4], else... Однако это некажется, не дает мне то, что я хочу, и мне также пришлось бы зациклить эту команду, чтобы она непросто сделать это для одного человека в первых трех столбцах, но для всех столбцов.

Любая помощь будет оценена! Заранее спасибо.

Ответы на вопрос(4)

Ваш ответ на вопрос