在R中应用K-means聚类的问题



只是试图将K-means聚类应用于一些数据,以找到最佳K并以图形方式说明过程,但我遇到了麻烦。我认为这可能与我的数据结构有关,但我对这一切都很陌生。

这是我的代码:

nci <- read.csv('/Users/myname/Desktop/ML/nci.datanames.csv')
names(nci)[1] <- "gene"

kmeans(nci, 10)
> head(nci)
gene    CNS    CNS.1  CNS.2     RENAL BREAST  CNS.3  CNS.4 BREAST.1  NSCLC NSCLC.1
1   g1  0.300 0.679961  0.940  2.80e-01  0.485  0.310 -0.830   -0.190  0.460   0.760
2   g2  1.180 1.289961 -0.040 -3.10e-01 -0.465 -0.030  0.000   -0.870  0.000   1.490
3   g3  0.550 0.169961 -0.170  6.80e-01  0.395 -0.100  0.130   -0.450  1.150   0.280
4   g4  1.140 0.379961 -0.040 -8.10e-01  0.905 -0.460 -1.630    0.080 -1.400   0.100
5   g5 -0.265 0.464961 -0.605  6.25e-01  0.200 -0.205  0.075    0.005 -0.005  -0.525
6   g6 -0.070 0.579961  0.000 -1.39e-17 -0.005 -0.540 -0.360    0.350 -0.700   0.360

获取此错误消息:

do_one(nmeth(中出错:外部函数调用中的NA/NaN/Inf(arg 1(此外:警告消息:在存储中。mode(x(<-"双":强制引入的NA

任何帮助都将不胜感激!!

要重现错误,可以尝试

lala <- mtcars
lala$a <- LETTERS[1:nrow(mtcars)]
kmeans(lala, 3)
Error in do_one(nmeth) : NA/NaN/Inf in foreign function call (arg 1)
In addition: Warning message:
In storage.mode(x) <- "double" : NAs introduced by coercion

尝试从kmeans调用中删除第一列。

kmeans(nci[,2:ncol(nci)], 10)

最新更新