Clustsig с измененным method.distance - PullRequest
       20

Clustsig с измененным method.distance

0 голосов
/ 06 февраля 2019

Я пытаюсь выполнить тест Симпрофа, используя корреляцию Пирсона в качестве метода расстояния.Я знаю, что он разработан для типичных методов расстояния, таких как евклидов или Брэйи Кертис, но он предположительно разрешает любую функцию, которая возвращает объект dist.

Моя проблема заключается в создании этой функции.Мои исходные данные существуют в виде набора из 35 строк и 2146 столбцов.Я хочу соотнести столбцы.Ниже приведено небольшое подмножество этих данных (строки 78-82).

Мне нужна функция, которая принимает абсолютное значение показателя коэффициента корреляции Пирсона для использования в качестве метода method.distance.Я могу рассчитать их по отдельности, как показано в строках 84-86, но я понятия не имею, как создать одну функцию, которая содержит все это.Моя попытка на строчках 89-91, но я знаю, что as.dist нужна матрица коэффициентов корреляции, которую вы можете получить только из CorrelationSmall $ r.Я предполагаю, что это должно быть вложено, но я в растерянности.Я прошу прощения, если я прошу что-то смешное.Я прочесал форумы и не знаю, кого еще спросить.Большое спасибо!

library(clustsig)
library(Hmisc)

NetworkAnalysisSmall <- read_csv("C:/Users/WilhelmLab/Desktop/Lena/NetworkAnalysisSmall.csv")
NetworkAnalysisSmallMatrix<-as.matrix(NetworkAnalysisSmall)
#subset of NetworkAnalysisSmall

a<-c(0.0000000000000,0.0000000000000,0.0000000000000,0.0000000000000,0.0000000000000,0.0000000000000,0.0000000000000,0.0000000000000,0.0000000000000,0.0000000000000,0.0000000000000,0.0000000000000,0.0000000001505,0.0000000000685,0.0000000009909,0.0000000001543,0.0000000000000,0.0000000000000,0.0000000000000)
b<-c(0.0000000000000,0.0000000000000,0.0000000000000,0.0000000000000,0.0000000000000,0.0000000000000,0.0000000000000,0.0000000000000,0.0000000000000,0.0000000000000,0.0000000000000,0.0000000000000,0.0000000000000,0.0000000000000,0.0000000002228,0.0000000000000,0.0000000001375,0.0000000000000,0.0000000000000)
c<-c(0.0000000000000,0.0000000000000,0.0000000000000,0.0000000000000,0.0000000000546,0.0000000000000,0.0000000000000,0.0000000002293,0.0000000000000,0.0000000000000,0.0000000000000,0.0000000000000,0.0000000000000,0.0000000000540,0.0000000002085,0.0000000000000,0.0000000000000,0.0000000000000,0.0000000000000)

subset<-data.frame(a,b,c)

CorrelationSmall<-rcorr(as.matrix(NetworkAnalysisSmall),type=c("pearson"))
CCsmall<-CorrelationSmall$r
CCsmallAbs<-abs(CCsmall)


dist3 = function(x) {
      as.dist(rcorr(as.matrix(x),type=c("pearson")))
    }


 NetworkSimprof<-simprof(NetworkAnalysisSmall,num.expected=1000,num.simulated=1000,method.cluster=c("ward"),method.distance=c("dist3"),method.transform=c("log"),alpha=0.05,sample.orientation="column")
...