v <- dput(x,"sampledata.txt") dim(v) q <- v[1:10,1:10] f =as.matrix(dist(t(q)))
distB=NULL for(k in 1:(nrow(f)-1)) for( m in (k+1):ncol(f)) { if(f[k,m] <2) distB=rbind(distB,c(k,m,f[k,m])) } #now distB looks like this > distB [,1] [,2] [,3] [1,] 1 2 1.6275568 [2,] 1 3 0.5252058 [3,] 1 4 0.7323116 [4,] 1 5 1 .9966001 [5,] 1 6 1.6664110 [6,] 1 7 1.0800540 [7,] 1 8 1.8698925 [8,] 1 10 0.5161808 [9,] 2 3 1.7325811 [10,] 2 5 0.8267843 [11,] 2 6 0.5963280 [12,] 2 7 0.8787230 #now from this output< i want to cluster all 1's, friedns of 1 and friends of friends of 1 in one cluster. The same goes for 2,3 and so on But when i do that using hclust, i get the following error. I think what I need to do is convert my cureent matrix somehow into a format that would be accepted by the hclust function but I dont know how to achieve that. distclust <- hclust(distB,method="single") Error in if (n < 2) stop("must have n >= 2 objects to cluster") : argument is of length zero P.S: Please let me know if this makes things more clear? "cuz i dont know how looking at the original data set would help becuase the matrix under consdieration right now is the distance matrix and how it can be altered. I have tried as.dist, doesnt work because my matrix as i mentioned eralier is not a square matrix. On Fri, May 28, 2010 at 2:37 PM, Tal Galili <tal.gal...@gmail.com> wrote: > Hi Ayesha, > I wish to help you, but without a simple self contained example that shows > your issue, I will not be able to help. > Try using the ?dput command to create some simple data, and let us see what > you are doing. > > Best, > Tal > ----------------Contact > Details:------------------------------------------------------- > Contact me: tal.gal...@gmail.com | 972-52-7275845 > Read me: www.talgalili.com (Hebrew) | www.biostatistics.co.il (Hebrew) | > www.r-statistics.com (English) > > ---------------------------------------------------------------------------------------------- > > > > > On Fri, May 28, 2010 at 9:04 PM, Ayesha Khan < > ayesha.diamond...@gmail.com> wrote: > >> Thanks Tal & Joris! >> I created my distance matrix distA by using the dist() function in R >> manipulating my output in order to get a matrix. >> distA =as.matrix(dist(t(x2))) # x2 being my original dataset >> as according to the documentaion on dist() >> >> For the default method, a "dist" object, or a matrix (of distances) or an >> object which can be coerced to such a matrix using as.matrix() >> >> On Fri, May 28, 2010 at 6:34 AM, Joris Meys <jorism...@gmail.com>wrote: >> >>> As Tal said. >>> >>> Next to that, I read that column1 (and column2?) are supposed to be seen >>> as factors, not as numerical variables. Did you take that into account >>> somehow? >>> >>> It's easy to reproduce the error code : >>> > n <- NULL >>> > if(n<2)print("This is OK") >>> Error in if (n < 2) print("This is OK") : argument is of length zero >>> >>> In the hclust code, you find following line : >>> n <- as.integer(attr(d, "Size")) >>> where d is the distance object entered in the hclust function. Looking at >>> the error you get, this means that the size attribute of your distance is >>> NULL. Which tells me that distA is not a dist-object. >>> >>> > A <- matrix(1:4,ncol=2) >>> > A >>> [,1] [,2] >>> [1,] 1 3 >>> [2,] 2 4 >>> > hclust(A,method="single") >>> >>> Error in if (n < 2) stop("must have n >= 2 objects to cluster") : >>> argument is of length zero >>> >>> Did you actually put in a distance object? see also ?dist or ?as.dist. >>> >>> Cheers >>> Joris >>> >>> >>> >>> >>> On Fri, May 28, 2010 at 1:41 AM, Ayesha Khan < >>> ayesha.diamond...@gmail.com> wrote: >>> >>>> i have a matrix with the following dimensions >>>> 136 3 >>>> >>>> and it looks something like >>>> >>>> [,1] [,2] [,3] >>>> [1,] 402 675 1.802758 >>>> [2,] 402 696 1.938902 >>>> [3,] 402 699 1.994253 >>>> [4,] 402 945 1.898619 >>>> [5,] 424 470 1.812857 >>>> [6,] 424 905 1.816345 >>>> [7,] 470 905 1.871252 >>>> [8,] 504 780 1.958191 >>>> [9,] 504 848 1.997111............... >>>> >>>> ................................................................................ >>>> so you get the idea. I want to group similar items in one group/cluster >>>> following the "friends of friends" approach. I tried doing >>>> >>>> distclust <- hclust(distA,method="single") >>>> However, I got the following error. >>>> >>>> Error in if (n < 2) stop("must have n >= 2 objects to cluster") : >>>> argument >>>> is of length zero >>>> which probably means there's something wrong with my input here. Is >>>> there >>>> another way of doing this kind of clustering without getting into all >>>> the >>>> looping and ifelse etc. Basically, if 402 is close to 675,696,and699 >>>> and >>>> thus fall in cluster A then all items close to 675,696,and 699 should >>>> also >>>> fall into the same cluster A following a friends of friedns strategy. >>>> Any help would be highly appreciated. >>>> >>>> -- >>>> Ayesha Khan >>>> >>>> MS Bioengineering >>>> Dept. of Bioengineering >>>> Rice University, TX >>>> >>>> [[alternative HTML version deleted]] >>>> >>>> ______________________________________________ >>>> 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<http://www.r-project.org/posting-guide.html> >>>> and provide commented, minimal, self-contained, reproducible code. >>>> >>> >>> >>> >>> -- >>> Joris Meys >>> Statistical Consultant >>> >>> Ghent University >>> Faculty of Bioscience Engineering >>> Department of Applied mathematics, biometrics and process control >>> >>> Coupure Links 653 >>> B-9000 Gent >>> >>> tel : +32 9 264 59 87 >>> joris.m...@ugent.be >>> ------------------------------- >>> Disclaimer : http://helpdesk.ugent.be/e-maildisclaimer.php >>> >> >> >> >> -- >> Ayesha Khan >> >> MS Bioengineering >> Dept. of Bioengineering >> Rice University, TX >> > > -- Ayesha Khan MS Bioengineering Dept. of Bioengineering Rice University, TX [[alternative HTML version deleted]] ______________________________________________ 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.