У меня есть датафрейм pedigree
, который выглядит следующим образом:
FamilyID SampleID MotherID FatherID Sex
F1961 F1961-1_8005116592 F1961-3_8005116421 F1961-2_8005116603 1
F1961 F1961-2_8005116603 0 0 2
F1961 F1961-3_8005116421 0 0 1
0450 F350_8005441283 0 0 1
0006 F355_8005441353 0 0 1
0189 F359_8005441284 0 0 1
0189 F359_8005441285 0 0 2
.
.
.
Некоторые FamilyIDs
(например, 0189
) появляются дважды, и они соответствуют парам братьев и сестер, чьи данные родителейне был записан.
Мне нужно добавить «фиктивный папа / мать-папа», который используется совместно для этих пар братьев и сестер, для последующего анализа.
Я хотел бы конкретно указать те образцы, чьи FamilyID
появляется два раза и присваивает им общее значение motherID
/ fatherID
, поэтому приведенный выше пример будет выглядеть следующим образом:
Желаемый результат:
FamilyID SampleID MotherID FatherID Sex
F1961 F1961-1_8005116592 F1961-3_8005116421 F1961-2_8005116603 1
F1961 F1961-2_8005116603 0 0 2
F1961 F1961-3_8005116421 0 0 1
0450 F350_8005441283 0 0 1
0006 F355_8005441353 0 0 1
0189 F359_8005441284 0189_mother 0189_father 1
0189 F359_8005441285 0189_mother 0189_father 2
.
.
.
До сих пор я пытался начать с mutate
, чтобы добавить столбец, показывающий, сколько раз наблюдается каждый FamilyID
, но это не работает:
pedigree %>%
mutate(FamilySize = count(Family_ID))
Error in mutate_impl(.data, dots) : Evaluation error: no applicable method for 'groups' applied to an object of class "character".
Большое спасибо за вашу помощь.