Return row of Data Frame based on value in a column - R

后端 未结 4 1045
無奈伤痛
無奈伤痛 2021-01-31 09:43

My R data.frame df looks like:

     Name     Amount
1    \"A\"      150
2    \"B\"      120
3    \"C\"      \"NA\"
4    \"D\"      160
.
.
.
         


        
4条回答
  •  不要未来只要你来
    2021-01-31 10:29

    @Zelazny7's answer works, but if you want to keep ties you could do:

    df[which(df$Amount == min(df$Amount)), ]
    

    For example with the following data frame:

    df <- data.frame(Name = c("A", "B", "C", "D", "E"), 
                     Amount = c(150, 120, 175, 160, 120))
    
    df[which.min(df$Amount), ]
    #   Name Amount
    # 2    B    120
    
    df[which(df$Amount == min(df$Amount)), ]
    #   Name Amount
    # 2    B    120
    # 5    E    120
    

    Edit: If there are NAs in the Amount column you can do:

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

提交回复
热议问题