计算两组之间的Hopkins统计量(系数),其值在Rs中具有不同的ID

时间:2017-07-26 13:43:48

标签: r loops cluster-computing

我有数据集“data_file”,其中包含五列& 100万行:

  • X1“ID_Number”(数字),
  • X2“Sample_Type”,
  • X3“Signal_X”(数字),
  • X4“Signal_Y”(数字),
  • X5“Signal_Z”(数字)。

ID的每个值对应于一组值“Signal_X”,“Signal_Y”和“Signal_Z”。

ID_Number :: Sample_Type :: Signal_X :: Signal_Y :: Signal_Z
2             Sample         337         1538      0.6314152
2             Sample         106         1840      0.9923422
…
2             Sample          94         1445      0.9967044
10            Sample         164         1777      0.9950826
10            Sample         183         1933      0.9931457
10            Sample         176         1590      0.9690951
…
10            Sample         139         1339      0.9820210
12            Sample         154         1397      0.9700886
12            Sample         144         1206      0.9457763
… etc
  

通过扫描ID我发现相关系数b / w“Signal_X”   和“Signal_Y”使用以下代码:

library(plyr)
dataAE<- ddply(data_file, " ID_Number ", summarise, CorrelationCoefficient=cor(SignalX, SignalY))
View(dataAE)

输出应该如下所示。

    datasetID    Correlation Coefficient

1   2           0.48083503
2   3          -0.81036062
3   10         -0.32098672
4   12         -0.20251427
5   24         -0.18004939
6   51         -0.45803370
7   54         -0.59001642
8   63         -0.53976850
etc …
  

通过类比,我试图找到 - 计算霍普金斯统计数据&amp;找到我的最佳簇数   数据集。

library(clustertend)
set.seed(123)
hopkins(data_file, n = nrow(data_file)-1)

我试图在

取代CorrelationCoefficient = cor (SignalX,SignalY)
HopkinsStatistics=hopkins(SignalX, SignalY)

......没有结果。 手动和对于每个ID集没有问题我使用了以下代码

library(clustertend)
# Compute Hopkins statistic for dataset
set.seed(123)
subset$sampletype<- NULL
df<-scale(subset)
res <- get_clust_tendency(df, 40, graph = FALSE)
# Hopskin statistic
res$hopkins_stat
res

问题是如何自动化计算和使用循环。  请帮我。提前谢谢。

0 个答案:

没有答案