【发布时间】:2021-05-05 14:58:28
【问题描述】:
我有一个数据框,我想在其中比较列父亲与男性 ID 和母亲与女性 ID 列,并根据分配给每个巢穴的个体数量给出输出。
这是: 如果父亲==male_id 和母亲==female_id 在巢的至少4 个个体中,则输出=“父母正确”。
如果巢中至少有 4 个个体中的父亲!=male_id 和母亲 ==female_id,则输出 =“母亲正确”。
如果巢中至少有 4 个个体中的父亲 ==male_id 和母亲!=female_id,则输出 =“父亲正确”
如果父亲!=male_id 和母亲!=female_id 在巢的至少 4 个个体中,则输出 =“新家庭”
df <- data_frame(
Progeny = c("ne1_1","ne1_2","ne1_3","ne1_4","ne1_5","ne1_6",
"ne2_1","ne2_2","ne2_3","ne2_4","ne2_5","ne2_6",
"ne3_1","ne3_2","ne3_3","ne3_4","ne3_5",
"ne4_1","ne4_2","ne4_3","ne4_4","ne4_5","ne4_6",
"ne5_1","ne5_2","ne5_3","ne5_4","ne5_5","ne5_6"),
Father = c("A4202","A4202","A4202","A4202","A4202","A4202",
"*1","*1","*1","*1","*1","*1",
"A4204","A4204","A4201","A4204","A4204",
"A3271","A3271","A3271","A3271","A3271","A3271",
"A3226","A3226","A3226","A3226","A3226","A3226"),
Mother = c("A1192","A1192","#1","A1192","A1192","A1192",
"A1198","A1198","A1198","A1198","A1198","A1198",
"A1190","A1190","#8","A1190","A1190",
"#2","#2","#2","#2","#2","#2",
"A0519","A0519","A0519","A0519","A0519","A0519"),
nest = c("ne1","ne1","ne1","ne1","ne1","ne1",
"ne2","ne2","ne2","ne2","ne2","ne2",
"ne3","ne3","ne3","ne3","ne3",
"ne4","ne4","ne4","ne4","ne4","ne4",
"ne5","ne5","ne5","ne5","ne5","ne5"),
male_id = c("A4202","A4202","A4202","A4202","A4202","A4202",
"A4204","A4204","A4201","A4204","A4204","A4204",
"NA_1","NA_1","NA_1","NA_1","NA_1",
"A3271","A3271","A3271","A3271","A3271","A3271",
"A3225","A3225","A3225","A3225","A3225","A3225"),
female_id = c("A1192","A1192","A1192","A1192","A1192","A1192",
"A1198","A1198","A1198","A1198","A1198","A1198",
"A1190","A1190","A1190","A1190","A1190",
"A2108","A2108","A2108","A2108","A2108","A2108",
"A0576","A0576","A0576","A0576","A0576","A0576"))
带输出:
df
Progeny Father Mother nest male_id female_id output
1 ne1_1 A4202 A1192 ne1 A4202 A1192 parents correct
2 ne1_2 A4202 A1192 ne1 A4202 A1192 parents correct
3 ne1_3 A4202 #1 ne1 A4202 A1192 parents correct
4 ne1_4 A4202 A1192 ne1 A4202 A1192 parents correct
5 ne1_5 A4202 A1192 ne1 A4202 A1192 parents correct
6 ne1_6 A4202 A1192 ne1 A4202 A1192 parents correct
7 ne2_1 *1 A1198 ne2 A4204 A1198 mother correct
8 ne2_2 *1 A1198 ne2 A4204 A1198 mother correct
9 ne2_3 *1 A1198 ne2 A4201 A1198 mother correct
10 ne2_4 *1 A1198 ne2 A4204 A1198 mother correct
11 ne2_5 *1 A1198 ne2 A4204 A1198 mother correct
12 ne2_6 *1 A1198 ne2 A4204 A1198 mother correct
13 ne3_1 A4204 A1190 ne3 NA_1 A1190 mother correct
14 ne3_2 A4204 A1190 ne3 NA_1 A1190 mother correct
15 ne3_3 A4201 #8 ne3 NA_1 A1190 mother correct
16 ne3_4 A4204 A1190 ne3 NA_1 A1190 mother correct
17 ne3_5 A4204 A1190 ne3 NA_1 A1190 mother correct
18 ne4_1 A3271 #2 ne4 A3271 A2108 father correct
19 ne4_2 A3271 #2 ne4 A3271 A2108 father correct
20 ne4_3 A3271 #2 ne4 A3271 A2108 father correct
21 ne4_4 A3271 #2 ne4 A3271 A2108 father correct
22 ne4_5 A3271 #2 ne4 A3271 A2108 father correct
23 ne4_6 A3271 #2 ne4 A3271 A2108 father correct
24 ne5_1 A3226 A0519 ne5 A3225 A0576 new parents
25 ne5_2 A3226 A0519 ne5 A3225 A0576 new parents
26 ne5_3 A3226 A0519 ne5 A3225 A0576 new parents
27 ne5_4 A3226 A0519 ne5 A3225 A0576 new parents
28 ne5_5 A3226 A0519 ne5 A3225 A0576 new parents
29 ne5_6 A3226 A0519 ne5 A3225 A0576 new parents
非常感谢任何帮助,我知道我可以使用 if_else 函数,但我不知道如何包含每个巢中至少 4 个人的状况。
【问题讨论】: