gpt4 book ai didi

r - 在某些条件适用时允许最大数量的条目

转载 作者:行者123 更新时间:2023-12-04 05:44:56 24 4
gpt4 key购买 nike

我有一个包含很多条目的数据集。这些条目中的每一个都属于某个 ID(belongID),条目是唯一的(带有 uniqID),但多个条目可以来自同一个源(sourceID)。来自同一源的多个条目也可能具有相同的belongID。出于研究的目的,我需要对数据集进行处理,我必须删除单个 sourceID 的条目,这些条目对于 1 个 belongID 出现 5 次以上。需要保留的最多 5 个条目是具有最高“时间”值的条目。

为了说明这一点,我有以下示例数据集:

   belongID   sourceID uniqID   Time     
1 1001 101 5
1 1002 102 5
1 1001 103 4
1 1001 104 3
1 1001 105 3
1 1005 106 2
1 1001 107 2
1 1001 108 2
2 1005 109 5
2 1006 110 5
2 1005 111 5
2 1006 112 5
2 1005 113 5
2 1006 114 4
2 1005 115 4
2 1006 116 3
2 1005 117 3
2 1006 118 3
2 1005 119 2
2 1006 120 2
2 1005 121 1
2 1007 122 1
3 1010 123 5
3 1480 124 2

最后的例子应该是这样的:
   belongID   sourceID uniqID   Time     
1 1001 101 5
1 1002 102 5
1 1001 103 4
1 1001 104 3
1 1001 105 3
1 1005 106 2
1 1001 107 2
2 1005 109 5
2 1006 110 5
2 1005 111 5
2 1006 112 5
2 1005 113 5
2 1006 114 4
2 1005 115 4
2 1006 116 3
2 1005 117 3
2 1006 118 3
2 1007 122 1
3 1010 123 5
3 1480 124 2

文件中有更多带有数据条目的列,但选择必须完全基于时间。如示例中所示,也可能出现具有相同belongID 的sourceID 的第5 个和第6 个条目具有相同的时间。在这种情况下,只需要选择 1,因为 max=5。

出于说明目的,这里的数据集按照所属 ID 和时间进行了很好的排序,但在实际数据集中,情况并非如此。知道如何解决这个问题吗?我还没有遇到过类似的东西..

最佳答案

如果 dat是你的数据框:

do.call(rbind, 
by(dat, INDICES=list(dat$belongID, dat$sourceID),
FUN=function(x) head(x[order(x$Time, decreasing=TRUE), ], 5)))

关于r - 在某些条件适用时允许最大数量的条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10797655/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com