If I did this, I get correct result:
a <- c("10","28","3")
which(as.numeric(a) == min(as.numeric(a)))
[1] 3
But if there is NAs in the vector, then there is a problem
a <- c("10","28","3","NA")
which(as.numeric(a) == min(as.numeric(a)))
integer(0)
Warning messages:
1: In which(as.numeric(a) == min(as.numeric(a))) :
NAs introduced by coercion
2: In which(as.numeric(a) == min(as.numeric(a))) :
NAs introduced by coercion
Two things.
First, there’s a difference between the character string
"NA"and the R data representation for missing values,NA. Remove the quotes around NA in your example to see:Second, when you’re using
minwith actual missing values (i.e. not the character strings"NA") you’ll want to usena.rm = TRUE: