Как найти минимальное значение и отобразить его с соответствующими столбцами - PullRequest
1 голос
/ 21 июня 2019

У меня есть фрейм данных, в котором я хочу отобразить минимальное значение в _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 рядом с ним?

1 Ответ

0 голосов
/ 21 июня 2019

Найти строку с самым низким значением в 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)]

То есть вы выбираете NAME из DATASET, где COLUMNAME имеет минимальное значение.

Если вам не нравится повторять DATASET столько раз, это эквивалентно использованию с:

with(DATASET, NAME[COLUMNNAME == min(COLUMNNAME)])

Надеюсь, это поможет.Пожалуйста, дайте мне знать, если он не отвечает на ваш вопрос или у вас есть дальнейшие комментарии.Удачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...