我正在用R进行市场篮子分析,这样做我正在为Elbow方法计算WSS,然后使用kmeans()
函数。
我使用了一个标准化数据帧pc1然后我们计算了PCA,然后在代码中我们有以下命令: -
pc1 <- princomp(na.omit(pc1))
plot(pc1)
loadings(pc1)
pc.df <- data.frame(pc1$x[,1:3])
names(pc.df)
wss <- (nrow(pc.df)-1)*sum(apply(pc.df,2,var))
for (i in 2:15) wss[i] <- sum(kmeans(pc.df, nstart = 100 , iter.max = 1000,
centers=i)$withinss)
然后在运行时,我在apply()
函数的代码的第6行出现以下错误: -
get中的错误(as.character(FUN),mode =“function”,envir = envir):
没有找到''功能'模式的对象'2013-12-09'
在下一行我得到: -
Error in kmeans(pc.df, nstart = 100, iter.max = 1000, centers = i) :
more cluster centers than distinct data points.
第二个错误显然是由于群集的数量大于不同的点,但它是否必须对先前的错误做些什么?
任何形式的帮助都将受到高度赞赏。此外,如果有人知道一个好的网站或链接的PDF格式,以了解PCA和肘部测试(在市场篮子的例子)也将有所帮助。
答案 0 :(得分:1)
我遇到了这个问题。 有一个名为&#34; var&#34;的变量。在变量列表中存在,同时我们在apply()中使用var函数。这就是出现以下错误的原因: -
val justGreater = rdd.filter(row => row.get[String]("dttime") > gpsdt).sortBy(row => row.get[String]("dttime")).take(1)
val justLess = rdd.filter(row => row.get[String]("dttime") < gpsdt).sortBy(row => row.get[String]("dttime"), false).take(1)
justGreater.union(justLess)
变量&#34; var&#34; 的分配值为 2013-12-09