我正在尝试从cld()
包中的kml
函数中提取分区值。数据是纵向的(5分)和7个代币。当我使用cld()
函数时,它会给我一个图中的分区,在那里我可以看到线条(图中的红色和绿色)。但是,我想找到一种方法(特别是行代码),它允许我提取这两行的x,y坐标,这些坐标稍后将用于分析和绘制其他地方。例如,红线的y坐标为:c(74, 79, 78, 80, 79)
。在这里,我给出了代码和生成的图。
#Code
library(kml)
points = rep(1:5, 7)
values = c(92.33181,90.34771,90.16533,89.54722,89.30509,85.27513,85.84612,83.80208,82.08371,82.65119,
81.36381,83.33078,82.72064,83.22167,82.39488,82.58548,82.54190,79.45408,78.29970,77.89541,
64.91261,77.20562,79.44067,82.22554,81.84798,87.33230,86.07741,88.16766,87.85872,87.23672,
83.27685,82.20176,85.21291,84.76475,84.23799)
tokens = rep(1:7, each = 5)
df = data.frame(points, values, tokens)
#clustering of the data
df.cluster <- reshape(df, timevar="points", idvar="tokens", direction="wide")
names(df.cluster) <- c("id", paste("t", 1:(ncol(df.cluster)-1)))
df.cluster.cld <- cld(df.cluster)
kml(df.cluster.cld, nbClusters=2, nbRedrawing=1)
#plot
choice(df.cluster.cld)
当我检查元素df.cluster.cld
时,我只能看到这一点,但它似乎没有显示我正在寻找的东西。
print(df.cluster.cld)
~~~ Class: ClusterLongData ~~~
~ Sub-Class: LongData ~
~ idAll = [7] 1 2 3 4 5 6 7
~ idFewNA = [7] 1 2 3 4 5 6 7
~ varNames = [1] V
~ time = [5] 1 2 3 4 5
~ maxNA = [1] 3
~ reverse = [2x1]
- mean = 0
- SD = 1
~ traj = [7x5] (limited to 5x10) :
t1 t2 t3 t4 t5
1 92.33181 90.34771 90.16533 89.54722 89.30509
2 85.27513 85.84612 83.80208 82.08371 82.65119
3 81.36381 83.33078 82.72064 83.22167 82.39488
4 82.58548 82.54190 79.45408 78.29970 77.89541
5 64.91261 77.20562 79.44067 82.22554 81.84798
... ...
~ Sub-Class: ListPartition ~
~ criterionActif = Calinski.Harabatz
~ initializationMethod = kmeans-
~ sorted = TRUE
~ criterion values (Calinski.Harabatz):
- c2 : 4.851811
答案 0 :(得分:0)
我试图做同样的事情(提取群集的平均轨迹)并查看绘制轨迹的函数的代码(你在问题中显示的图),我得到的线就是这样做的。如果它仍然有用,这里是代码:
# Substitute the 'c2' for the number of clusters in your case
# 1 in the second argument is the number of the partition you're looking at
mean.trajectories <- calculTrajMean(df.cluster.cld["traj"], df.cluster.cld['c2'][[1]]['clusters'])
calculTrajMean是&#39; kml&#39;内的函数。包,我只是不知道如何将它与从我的星团中提取轨迹联系起来。我们的想法是在&#39; kml&#39;内查看绘图功能的代码。 package,调用另一个函数,该函数从纵向调用函数plotTrajMeans&#39;包裹和线路在那里。 你得到的是一个矩阵,其中nrow =簇数和ncol =轨迹的时间点数。
希望有所帮助!