我正在尝试筛选一份包含家庭信息的数据框。它看起来像这样:
现在我想知道是否每个拥有相同父亲的人也有相同的母亲。我已经花了一个小时尝试不同的方法,但总是卡住。另外,我想使用 R 方法而不是一长串函数或循环来实现我想要的功能,以便学习新知识。
我的预期输出:
但是这不起作用,因为r说我不能以那种方式使用TRUE。
+--------+-------+---------+
| name | dad | mom |
+--------+-------+---------+
| john | bert | ernie |
| quincy | adam | eve |
| anna | david | goliath |
| daniel | bert | ernie |
| sandra | adam | linda |
+--------+-------+---------+
现在我想知道是否每个拥有相同父亲的人也有相同的母亲。我已经花了一个小时尝试不同的方法,但总是卡住。另外,我想使用 R 方法而不是一长串函数或循环来实现我想要的功能,以便学习新知识。
我的预期输出:
+--------+------+-------+
| name | dad | mom |
+--------+------+-------+
| quincy | adam | eve |
| sandra | adam | linda |
+--------+------+-------+
基本上我想要一个数据框,其中包含有多个伴侣的父亲和母亲的孩子。
到目前为止,我的方法是:
- 按父亲列拆分df
- 从结果列表中删除仅具有一行的所有df(这里我已经卡住了,无法使其工作)
- 删除nrow(unique(df$mom)) = 1的所有df
- 得到的列表应该给出具有不同父母的所有兄弟姐妹。
我的代码到现在为止:
fraternals <- split(kinship, kinship$father)
fraternals <- fraternals[-which(lapply(fraternals, function(x) if(nrow(x) == 1) { output TRUE }))]
但是这不起作用,因为r说我不能以那种方式使用TRUE。