You can use the duplicated function to do this:
if sum(!duplicated(x[,1]))==1 returns TRUE , the column contains all the same values.
sum(!duplicated(x[,1]))==1 [1] TRUE sum(!duplicated(x[,2]))==1 [1] FALSE
If x contains NA, this method will work in the sense that all NA columns return TRUE , and mixed columns return FALSE .
x <- matrix(c(NA,NA,NA,"Overflow","Overflow",NA),nrow=3,ncol=2) sum(!duplicated(x[,2]))==1 [1] FALSE sum(!duplicated(x[,1]))==1 [1] TRUE
source share