我有一个数据框,我想将_c3中的最小值显示为对应的_c0值
+-----------+----+
| _c0| _c3|
+-----------+----+
|ITE00100554| -75|
|ITE00100554|-148|
|GM000010962| 0|
|EZE00100082| -86|
|EZE00100082|-135|
|ITE00100554| -60|
我已经选择了如上所示的列,并使用聚合函数来找到最小值
val g = df.select($"_c0",$"_c3").agg(min($"_c3"))
df.filter($"_c2" === "TMAX")
val g = df.select($"_c0",$"_c3").agg(min($"_c3"))
但这是我得到的输出:
+--------+
|min(_c3)|
+--------+
| -1|
+--------+
如何更改代码以获取_c0及其旁边的最小_c3值?
答案 0 :(得分:0)
在COLUMNA中查找值最低的行,从COLUMNB返回值
一种简单的方法如下所示:
> df<-data.frame(name=sample(LETTERS[1:10]),value=sample(10))
> df
name value
1 C 10
2 H 5
3 D 6
4 G 9
5 F 1
6 A 7
7 J 8
8 I 4
9 B 3
10 E 2
> df[which.min(df$value),]
name value
5 F 1
> df$name[which.min(df$value)]
[1] F
Levels: A B C D E F G H I J
但是更有效的方法是:
DATASET$NAME[DATASET$COLUMNNAME == min(DATASET$COLUMNNAME)]
也就是说,您从DATASET中选择NAME,其中COLUMNAME为最小值。
如果您不喜欢重复DATASET这么多次,则等同于使用:
with(DATASET, NAME[COLUMNNAME == min(COLUMNNAME)])
希望这会有所帮助。如果它不能回答您的问题,或者您有其他意见,请告诉我。祝你好运。