【发布时间】:2020-05-20 20:47:45
【问题描述】:
这是我的数据框的示例:
ID <- rep(c(1, 2,3), each = 4)
value <- rep(c(3,3,1,1,4,4,4,4,6,6,9,9))
Group <- rep(c("Group 1","Group 2", "Group 2","Group 2","Group 1", "Group 2"), each =2 )
data <- data.frame(ID, Group,value)
data
#> ID Group value
#> 1 1 Group 1 3
#> 2 1 Group 1 3
#> 3 1 Group 2 1
#> 4 1 Group 2 1
#> 5 2 Group 2 4
#> 6 2 Group 2 4
#> 7 2 Group 2 4
#> 8 2 Group 2 4
#> 9 3 Group 1 6
#> 10 3 Group 1 6
#> 11 3 Group 2 9
#> 12 3 Group 2 9
在第 1 组和第 2 组中有一些重复的 ID(例如 ID 1 和 3 )。此外,只有一个组中有一些 ID,组 1 或组 2(例如 ID 2)。我想根据“组”列(第 1 组或第 2 组)对数据框进行子集化,以“值”列(最小值)为条件,以便考虑所有 ID(即使只有一组中的 ID)。我期望的输出是这样的:
ID <- rep(c(1,1,2,2,2,2,3,3))
value <- rep(c(1,1,4,4,4,4,6,6))
Group <- rep(c("Group 2","Group 2","Group 2","Group 2","Group 2","Group 2","Group 1","Group 1"))
data <- data.frame(ID, Group,value)
data
#> ID Group value
#> 1 1 Group 2 1
#> 2 1 Group 2 1
#> 3 2 Group 2 4
#> 4 2 Group 2 4
#> 5 2 Group 2 4
#> 6 2 Group 2 4
#> 7 3 Group 1 6
#> 8 3 Group 1 6
因此,子集之前的不同 ID 的数量必须与子集之后的不同 ID 的数量相同。唯一会改变的是行数会减少
如果我没有足够清楚地说明问题,请随时提问,我会尝试更清楚地解释! 提前谢谢大家!
【问题讨论】: