Вложенные операторы 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...
Однако это некажется, не дает мне то, что я хочу, и мне также пришлось бы зациклить эту команду, чтобы она непросто сделать это для одного человека в первых трех столбцах, но для всех столбцов.
Любая помощь будет оценена! Заранее спасибо.