【发布时间】:2017-11-03 21:41:20
【问题描述】:
您好,我有一个看起来像这样的数据框(实际的数据框有更多的行和更多的列,但这些是我现在特别关注的列):
Male_ID Mate_ID Year Pair_Number
1 A B 1987 1
2 A C 1987 2
3 E D 1988 2
4 E F 1990 1
我正在尝试选择包含与男性交配的第一个伴侣的 ID 的行。我想选择在给定年份内具有最低年份值和最低 Pair_Number 的行,因此我试图确保选择第一行和第三行。
我试过这段代码:
d <- ddply(dataframe, .(Male_ID), summarise, Year = min(Year), Pair_Number = min(Pair_Number))
results <- left_join(d, dataframe, by = c("Male_ID", "Year", "Pair_Number))
但是第一个代码给了我这个:
Male_ID Year Pair_Number
1 A 1987 1
2 E 1988 1
第 1 行正确,但第 2 行错误。在 1988 年,男 E 的 Pair_Number 不等于 1。
我想要这个:
Male_ID Year Pair_Number
1 A 1987 1
2 E 1988 2
谢谢!
【问题讨论】:
-
如果我理解正确,你不也想要第 4 行吗?年份不同。
-
不,因为我想找到雄性的第一个伴侣。第 4 行并没有给我们与雄性 E 交配过的第一个伴侣,而是给了我们他一生交配过的第二个伴侣
标签: r