【发布时间】:2017-03-17 17:14:02
【问题描述】:
我有一个包含 n 列的数据框 A。我需要通过因子 B 找到每列的最大值(但当其他值小于 0 时不是 0)。
数据框(A)
B a b
1 0 0
2 0 0
3 0 0
1 -0.1 0.1
2 0.2-0.3
3 0 1
1 -0.3 0.4
2 -0.5 0.2
3 0.1 0.2
我正在寻找的输出看起来像这样
B a b
1 -0.3 0.4
2 0.2 0.2
3 0.1 1
我知道我可以使用aggregate 函数,但它一次只能用于一列。
每列的算法是:
1.忽略所有0
2. 如果所有值
【问题讨论】:
-
您可以使用
*apply函数在所有列上使用聚合? -
是的,但是当另外两个为负数时,它取 0 作为最大值。但在这种情况下,我需要取最大负值
-
但是对于第 1 组,您选择
-0.3。不应该是-0.1吗? -
@Sotos,对不起,我错误地表达了所需的输出,它应该包括三个中的最低/最高值
-
... 如果某个特定分组值的所有值都是 0?
标签: r