Чтобы выбрать столбцы с более чем одним значением независимо от типа:
uniquelength <- sapply(d,function(x) length(unique(x)))
d <- subset(d, select=uniquelength>1)
?
(Ой, вопрос Романа верен - это также может выбить ваш столбец 5)
Может быть ( изменить : спасибо за комментарии!)
isfac <- sapply(d,inherits,"factor")
d <- subset(d,select=!isfac | uniquelength>1)
или
d <- d[,!isfac | uniquelength>1]