は、私は、これはplink FAM形式です推測していて、いくつかの個人が父または母が欠落している、との両方の後、行うmissing場合、私たちは、親の少なくとも一つを持っている人行方不明の親を追加したいです両親を追加しないでください。
# dummy fam data with missing parents
df1 <- read.table(text = "FID IID Father Mother Sex
1 1 0 2 1
1 2 0 0 2
1 3 0 2 1
1 4 0 2 2
2 1 3 0 1
2 2 3 0 2
2 3 0 0 1
3 1 0 0 1
4 1 0 0 1
4 2 0 0 2
4 3 1 2 2
4 4 1 2 2
", header = TRUE,
colClasses = "character")
ダミーデータについての注意、:
- FID == 1は、父親が欠落してい
- FID == 2は、母親が欠落してい
- FID == 3を持つ単一の、個々の家族です何の両親
- FID == 4ミッシング両親
タスクは、そのうちの一つが欠落している場合にのみ、行方不明の父または母を追加していないではありません。すなわち、父親== 0と母親== 0が不足している場合は、両親を追加しないでください。
library(dplyr) # using dplyr for explicity of steps.
# update 0 to IID for missing Father and Mother with suffix f and m
df1 <-
df1 %>%
mutate(
FatherNew = if_else(Father == "0" & Mother != "0", paste0(Mother, "f", IID), Father),
MotherNew = if_else(Mother == "0" & Father != "0", paste0(Father, "m", IID), Mother))
# add missing Fathers
missingFather <- df1 %>%
filter(
FatherNew != "0" &
MotherNew != "0" &
!FatherNew %in% df1$IID) %>%
transmute(
FID = FID,
IID = FatherNew,
Father = "0",
Mother = "0",
Sex = "1") %>%
unique
# add missing Mothers
missingMother <- df1 %>%
filter(
FatherNew != "0" &
MotherNew != "0" &
!MotherNew %in% df1$IID) %>%
transmute(
FID = FID,
IID = MotherNew,
Father = "0",
Mother = "0",
Sex = "2") %>%
unique
# update new Father/Mother IDs
res <- df1 %>%
transmute(
FID = FID,
IID = IID,
Father = FatherNew,
Mother = MotherNew,
Sex = Sex)
# add missing Fathers/Mothers as new rows, and sort
res <- rbind(
res,
missingFather,
missingMother) %>%
arrange(FID, IID)
結果、私は私がオフスプリング行方不明把握するために、この答えは非常に便利だったと思う出力
res
# FID IID Father Mother Sex
# 1 1 1 2f1 2 1
# 2 1 2 0 0 2
# 3 1 2f1 0 0 1
# 4 1 2f3 0 0 1
# 5 1 2f4 0 0 1
# 6 1 3 2f3 2 1
# 7 1 4 2f4 2 2
# 8 2 1 3 3m1 1
# 9 2 2 3 3m2 2
# 10 2 3 0 0 1
# 11 2 3m1 0 0 2
# 12 2 3m2 0 0 2
# 13 3 1 0 0 1
# 14 4 1 0 0 1
# 15 4 2 0 0 2
# 16 4 3 1 2 2
# 17 4 4 1 2 2
これは素晴らしいことです。私の90%の問題は解決されました。ちょうど最後のもう1つの質問 - 父親や母親の中には1歳以上の人がいます。例えば、上記の例では、父の3が2回来るので、3m1,3m2という母親が必要です。同じ風習では、IIDも調整する必要があります。 – user2808642
@ user2808642しかし、兄弟は同じ父親(3人)と2人の異なる母親(3m1と3m2)から来ていると言っていますか? – zx8754
@ user2808642私のダミーデータをあなたのポストにコピーし、予想される出力を追加することができればいいと思います。 – zx8754