On Tue, Feb 26, 2013 at 8:34 AM, Joanna Papakonstantinou <joanna.p...@gmail.com> wrote: > So I realized I had to convert my dd.daisy to a matrix and used: > ddmatrix.daisy<-as.matrix(dd.daisy) > and then I passed that in as the distM: >> cutreeDynamic(as.hclust(dd.diana), cutHeight = NULL, minClusterSize = 2, > method = "hybrid", distM = ddmatrix.daisy,deepSplit = > (ifelse(method=="hybrid", 1, FALSE)),maxCoreScatter = NULL, minGap = NULL, > maxAbsCoreScatter = NULL, minAbsGap = NULL,useMedoids = FALSE, > maxDistToLabel = cutHeight,respectSmallClusters = TRUE, verbose = 2, indent > = 0) > > However, now I am getting a different error: > > Detecting clusters... > ..cutHeight not given, setting it to 0.847 ===> 99% of the (truncated) > height range in dendro. > Error in ifelse(method == "hybrid", 1, FALSE) : object 'method' not found > > Anny suggestions on how to fix this?
Yes, leave out the 'deepSplit = (ifelse(method=="hybrid", 1, FALSE))' from the call. This is not really a cutreeDynamic problem, it is a perhaps somewhat confusing aspect of R language. If you don't specify deepSplit, its default value will be evaluated within the function 'interior' where the variable 'method' is defined. If you do specify deepSplit, the expression that you specify is evaluated from 'outside' the function where the variable 'method' is undefined. Thus, the seemingly same expression can lead to two different results. In fact, you may want to leave out all arguments for which you are using a default value, it will make your call shorter and less prone to the type of error you just experienced. HTH, Peter ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.