【发布时间】:2021-11-19 11:17:31
【问题描述】:
我正在苦苦思考如何才能在我的数据框中只保留 measure 中的值差异对于 id1 中的每个组而言 2 最小的元素。这是一个玩具示例:
test = data.frame(measure = c(1, 2, 3, 2, 2, 4, 0, 1),
id1 = c("A", "B", "A", "B", "C", "C", "A", "D"),
id2 = c("16", "16", "16", "16", "17", "17", "17", "18"))
# > test
# measure id1 id2
# 1 1 A 16
# 2 2 B 16
# 3 3 A 16
# 4 2 B 16
# 5 2 C 17
# 6 4 C 17
# 7 0 A 17
# 8 1 D 18
#as result, I'd like something like
#> res
# measure id1 id2
# 1 1 A 16
# 3 3 A 16
# 5 2 C 17
# 6 4 C 17
# 7 0 A 17
id1 等于 A 和 D 被删除,因为它们的 max(value) - min(value) < 2。
关于如何应用它的任何提示?
【问题讨论】:
-
是否也应该通过分组
measure来完成删除?还是忽略measure列? -
@PaulSmith
measure列将用于计算最小值和最大值,group_by 应使用id1。 -
类似:
if(max(value) - min(value) >= 2by eachid1我们保留它们