[R] Silhouette function problem

jim holtman jholtman at gmail.com
Fri Dec 31 18:20:56 CET 2010


Is this what you want:

> library(cluster)
> d<-hclust(dist(iris[,-5]))
>
> avgs<-sapply(1:20,function(x)
+ summary(silhouette(cutree(d,x),
+
+ dist(iris[,-5]))))
> # str(avgs)
>
> # print out the average widths
> for (i in 2:length(avgs)){  # ignore first item
+     cat('i=', i, 'average=', avgs[[i]]$avg.width, '\n')
+ }
i= 2 average= 0.515983
i= 3 average= 0.5135953
i= 4 average= 0.4998128
i= 5 average= 0.346174
i= 6 average= 0.3382031
i= 7 average= 0.3297649
i= 8 average= 0.324025
i= 9 average= 0.3191681
i= 10 average= 0.3028503
i= 11 average= 0.3072648
i= 12 average= 0.2834498
i= 13 average= 0.2776717
i= 14 average= 0.2855396
i= 15 average= 0.2745142
i= 16 average= 0.2578903
i= 17 average= 0.2531909
i= 18 average= 0.2473504
i= 19 average= 0.2484205
i= 20 average= 0.2545357
>


On Fri, Dec 31, 2010 at 10:34 AM, ADias <diasandre at gmail.com> wrote:
>
>
> ADias wrote:
>>
>> Hi,
>>
>> I am using the code below to get a plot that will show me on the X axis
>> the number of clusters and on the Y axis the cluster average widths.
>> However I am getting this error:
>>
>> Error in summary(silhouette(cutree(d, x), dist(iris[, -5])))$si.summary :
>>   $ operator is invalid for atomic vectors
>>
>> the code I am using is:
>>
>> avgs<-sapply(1:20,function(x)
>> summary(silhouette(cutree(d,x),
>> dist(iris[,-5])))$si.summary[4])
>>
>> I think the problem is on the si.summary.
>>
>> What can I do to solve this problem?
>>
>> thank you
>>
>> Regards,
>> A Dias.
>>
>
> Hi,
>
> I have made this script
>
> library(cluster)
> d<-hclust(dist(iris[,-5]))
> avgs<-sapply(1:20,function(x)
> summary(silhouette(cutree(d,x),
> dist(iris[,-5]))))
> str(avgs)
>
> I need $ avg.width  but I don't know how to take that out from the object
> avgs.
> The mode from avgs is "list" but it does not work as a normal list.
>
> Any help would be apreciated.
>
> thanks
> A. Dias
> --
> View this message in context: http://r.789695.n4.nabble.com/Silhouette-function-problem-tp3169027p3169522.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> R-help at 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.
>



-- 
Jim Holtman
Data Munger Guru

What is the problem that you are trying to solve?



More information about the R-help mailing list