Извлечение строк с минимальным или максимальным значением из фрейма данных - PullRequest
0 голосов
/ 01 апреля 2020

Я работаю над курсом cra sh для R на https://bioinformatics-core-shared-training.github.io/r-crash-course/crash-course.nb.html

Проблема, с которой я столкнулся, состоит в том, чтобы извлечь строки с минимальным или максимальным значением для определенного значения.

Например, при запуске

df[df$tmp ==min(df$tmp),]

я получаю правильную строку с ожидаемым значением.

Однако при запуске следующего кода

df[min(df$tmp),]

Я полностью понимаю что-то еще.

Мне интересно, что вызывает это несоответствие?

Ответы [ 2 ]

0 голосов
/ 01 апреля 2020

df[df$Tmp ==min(df$tmp),] - правильный подход для получения того, что вы ищете.

df[min(df$Tmp),] возвращает строку в df, равную min(df$Tmp). В некоторых случаях это может привести к ошибке, например, когда min(df$Tmp) не является целым числом или отрицательным, или если оно больше, чем число строк в df et c. Надеюсь, что это имеет смысл.

0 голосов
/ 01 апреля 2020

Если df$Tmp - это число c без NA, min(df$Tmp) должно возвращать число. Предполагая, что число является целым числом, i, df[min(df$Tmp),] вернет i-ую строку вашего фрейма данных, при условии, что ваш фрейм данных имеет i-ю строку.

С другой стороны, df[df$Tmp ==min(df$tmp),] вернет строку (s) of df где df$Tmp равно минимальному значению в этом столбце.

...