Getting started with cluster analysis in R I have a huge dataset which contains 20 columns and many rows.
I have done clustering in SAS, Knime and SPSS, but I am new to R.
I have to do clustering on my dataset. 
I have imported my data into R.


*

*What are some suggestions for getting started with cluster analysis in R?

 A: A lot of people coming from SAS or SPSS to R find the Quick-R website useful.
There is a page on cluster analysis which you may find useful in getting you started.
A: ## dummy data
require(MASS)
set.seed(1)
dat <- data.frame(mvrnorm(100, mu = c(2,6,3), 
                          Sigma = matrix(c(10,   2,   4,
                                            2,   3, 0.5,
                                            4, 0.5,   2), ncol = 3)))

So my data are in object dat, you have read your data in and called it something. Use that object instead of dat in this code below:
[@sridher - the codes below are the three lines I mentioned!]
set.seed(2) ## *k*-means uses a random start
klust <- kmeans(scale(dat, center = TRUE, scale = TRUE), centers = 3)
klust

The first line (set.seed(2)) fixes the random number generator at a given starting point so the results are reproducible. We do this because kmeans(), if not given the starting cluster centres will randomly choose centers samples from your data as the cluster centres.
The second line calls kmeans() on the standardised data (all the variables in my data set are in different units, so scaling them to zero mean and unit variance would seem appropriate). We ask for 3 groups by specifying centers = 3.
The third line prints the fitted k-means object to the screen showing the output from the function.
This is just an example though. Why three groups? I don't even do any subsequent analysis of the clustering solution. Furthermore, you probably want to run the kmeans() code several times to make sure you get similar clusterings each time, but using different random starts --- set a different seed for each run.
There is a lot more to clustering than just throwing your data at an algorithm!
You can automate that bit to some extent using the cascadeKM() function in package vegan:
require(vegan)
fit <- cascadeKM(scale(dat, center = TRUE, scale = TRUE), 1, 4, iter = 100)
plot(fit, sortg = TRUE)

which suggests 2 groups is the best solution for these data:

but we know the data generation process had three groups, and as such k-means and the summary stats of the results have not been able to correctly identify the presence of three groups in this small sample of data.
With some real data this time, using the famous Iris data set
fit2 <- cascadeKM(iris[,1:4], 1, 4, iter = 100)
plot(fit2, sortg = TRUE)

which clearly favours 3 groups,

, which is good seeing as there really are three species in the data set
> with(iris, unique(Species))
[1] setosa     versicolor virginica 
Levels: setosa versicolor virginica

