r - 访问 R 中对象中的列表(轮廓函数)

标签 r list object silhouette

我使用 k-means 对 5 个集群进行聚类。

km <- kmeans(data1z, 5)

对于生成的聚类解决方案,我想仔细看看轮廓系数。

library(cluster)
kms <- silhouette(km$cluster, dist(data1z))

当我查看 kms 时,我发现除其他外还有一个包含 4 列的列表,其中包含观察编号、集群、邻居和 sil_width。

我的目标是访问此列表并将其保存为数据框。

当输入attributes(kms)时,我可以看到这个列表叫做$dimnames[[2]]

不幸的是,我没有得到比命令 attributes(kms)$dimnames[2] 更进一步的信息,在那里我只能再次看到列标题。

有人知道如何访问此列表以及如何将其保存为数据框吗?

这是一个用于复制的数据集:

data1z <- structure(list(ewz_2015 = c(12.3021483912036, 6.00431244756797, 
4.779267671771, 3.36240424966866, 2.17055661812825, 1.77453900433742, 
1.73252006339734, 1.63802469941643, 1.62509551490745, 1.54457617410254, 
1.53364252580256, 1.48406671823494, 1.44167702193362, 1.36102682629534, 
1.29289507638349, 0.833125714742489, 0.779707863872641, 0.718075237351878, 
0.666165851922353, 0.634288160569021, 0.62598614836252, 0.618807306809176, 
0.548269281905782, 0.511353679467419, 0.453741204216529), `ewz_2011-2015%` = c(1.39613656271163, 
0.607258369151278, 1.58299833983535, 0.869374153763874, 2.47422861813756, 
1.26635046973522, 0.516361108243701, -0.0231779755856095, 0.138107778444893, 
3.16774974965261, -0.0753473600679229, 1.04625956881232, 0.791887976779923, 
0.620263594519286, -0.816319108567795, -0.893520732827146, -0.199721969111692, 
-0.366631601460676, 0.449431084621143, 1.32617159421819, 1.20542758697938, 
0.994137944732868, 1.59988312849927, -0.304095591697581, -0.75135416084694
), `wander_2011-2015Ø` = c(12.7557665621901, 4.35832738812673, 
5.09045816442083, 2.64251455289482, 3.08786901008964, 1.91169325750985, 
1.16450345076077, 0.983664137210036, 1.54693735027193, 3.41661419232651, 
0.860114613433702, 1.37886547558521, 1.18414566439771, 1.20319861162554, 
0.2222664625969, 0.165762361367978, 0.384183777010717, 0.0847054930928842, 
0.362642816055543, 1.3209864194017, 0.834252365478401, 0.718821623338668, 
0.925719606981072, 0.0520339444101122, 0.0355999590005416), alter_2015 = c(-0.795452185805918, 
-1.07302292239275, -1.40333685910657, -1.34690303328897, -1.91815169287439, 
-1.37100226741981, -0.595290898752181, -0.365235516337521, 0.0822720690988413, 
-0.738268589162625, -0.178511147449755, -0.703870795263088, -0.990947412522991, 
-0.534494948654483, -0.178710886267292, 0.334623380729479, -0.127973906699767, 
-0.783759886944363, -1.45250245534342, -1.85605680531628, -1.17977119761638, 
-1.1146728315242, -0.76966585145387, -0.717887352917514, -0.185025056153872
), `wohn_2015/ewz` = c(0.536981056223323, 0.0977036963071221, 
0.439785877795005, 0.114031432514775, 0.0602824633607677, -0.500555610996494, 
0.806802317088195, 0.393695162242274, 0.428285715377852, 1.76545423345811, 
0.125639381279224, 0.744169728769213, 0.778027562679934, 0.402207878643676, 
0.14118545812779, 0.57834537462665, 0.689548342207427, -0.209153915991276, 
0.285452430924394, 0.1339991931372, -0.227290305128167, 0.524430279211976, 
0.146456452575513, -0.173054623600596, 0.315209504451725)), .Names = c("ewz_2015", 
"ewz_2011-2015%", "wander_2011-2015Ø", "alter_2015", "wohn_2015/ewz"
), row.names = c(NA, 25L), class = "data.frame")

最佳答案

我就是这样做的,希望对你有用。

km <- kmeans(data1z, 5)
library(cluster)
kms <- silhouette(km$cluster, dist(data1z))
class(kms)
kms2<-as.data.frame(cbind(cluster=kms[,1],neighbor=kms[,2],sil_width=kms[,3]))
class(kms2)

关于r - 访问 R 中对象中的列表(轮廓函数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48085376/

相关文章:

python - 从列表中选择特定项目

c# - 如何使用反射在运行时创建值类型或字符串类型对象

javascript - 对 Javascript 对象进行逆向工程?

python - Pygame rect.center 属性

r - macOS Big Sur 下的 Shell PATH to R

r - 加载 R 包时连接到数据库

python - 在列表上使用函数

mysql SELECT IN 后跟逗号分隔字段

R:使用 jarowinkler 进行字符串模糊匹配

r - Beta 回归的 DFFIT