Home > OS >  How can i return list of min value in dataframe in r?
How can i return list of min value in dataframe in r?

Time:04-11

Example: I have a data frame as below:

| Date                 |  value |
| 1/2/2020             | 1      |
| 1/3/2020             | 2      |
| 1/4/2020             | 3      |
| 1/5/2020             | 1      |
| 1/6/2020             | 1      |
| 1/7/2020             | 3      |  

The result should be:

| 1/2/2020             | 1      |
| 1/5/2020             | 1      |
| 1/6/2020             | 1      |

I had tried

df[which.min(df$value),]

but it didn't work

enter image description here

CodePudding user response:

which.min only returns the index of first minimum value

which.min(c(5, 1, 3, 1, 2))
[1] 2

Instead, create a logical vector with == on the min value

df[df$value == min(df$value, na.rm = TRUE),]

Or use %in% which would be safe even when there are NA values (return FALSE where NA are found whereas == returns NA)

df[df$value %in% min(df$value, na.rm = TRUE),]
  •  Tags:  
  • r
  • Related