It isn't clear to me if you want to cluster the rows (the observations) in terms of similarity in the variables, or cluster the variables (the columns) in terms of similarity of occurrence in observations?
Anyway, see package cluster. This is a recommended package that comes with all R installations.
Read ?daisy
for details of what is done with ordinal data. This metric can be used in functions such as agnes
(for hierarchical clustering) or pam
(for partitioning about medoids, a more robust version of k-means).
By default, these will cluster the rows/observations. Simply transpose the data object using t()
if you want to cluster the columns (variables). Although that may well mess up the data depending on how you have stored them.