【发布时间】:2018-06-08 23:33:55
【问题描述】:
我有一个数据框,想获取每个组的A、B、C 列的最小值。
df <- data.frame(ID = seq(1,9,1),
group = c(1,1,1,2,2,2,3,3,3),
A = runif(9, min=0, max=10),
B = runif(9, min=-10, max=10),
C = runif(9, min=0, max=100))
require(reshape2)
df_melt <- melt(data = df, id.vars = c("ID", "group"))
dat_min <- aggregate(x = df_melt[, 4],
by = list(group = df_melt$group, variable = df_melt$variable),
FUN = min,
na.rm=TRUE)
我希望将ID 列附加到dat_min 数据框,以便生成的数据框为:
group variable x ID
1 A 0.4934011 3
2 A 4.3482557 6
3 A 1.6423930 7
1 B 6.1969513 2
... ... ... ...
这在aggregate 内可能吗?如何在分组/聚合过程中包含 ID 列而不实际使用它?
【问题讨论】:
-
您应该在开头添加一个
set.seed调用,以便我们重现并了解您的预期输出 -
如果 ID 对于组/变量对是唯一的,您可以安全地将其添加为
by参数,如果不是,则不清楚要添加到每一行的 ID -
我想从属于特定最小值的列 ID 添加 ID。每行的 ID 都是唯一的。