2016-10-06 4 views
0

pvclust 패키지로 수행하려고하는 클러스터 분석과 관련하여 몇 가지 문제가 있습니다.pvclust R 패키지와 함께 ''병동 ''방법을 사용할 때의 오류

특히, 나는 종 (행)과 샘플링 스테이션 (열)으로 구성된 데이터 매트릭스를 가지고 있습니다. 내 종 풍부에 따라 샘플링 스테이션을 그룹화하기 위해 CA를 수행하고 싶습니다 (이전에 log (x + 1)을 변환했습니다).

행렬을 적절히 준비하고 나면 워드의 클러스터링 방법과 Bray-Curtis를 거리 색인으로 사용하여 pvclust 패키지에 따라 CA를 실행하려고했습니다.

'

'hclust (거리, 방법 = method.hclust) 오류 : 무효 클러스터링 방법 '그때 또 다른를 사용하여 동일한 분석을 수행하려고

'그러나 때마다 나는 다음과 같은 오류 메시지가 클러스터 방법, 나는 아무런 문제가 없었다. 또한 채식주의 자 패키지의 hclust 함수를 사용하여 동일한 분석을 수행하려고했지만 전혀 문제가 없었습니다. 분석은 문제없이 실행됩니다.

더 내 문제를 이해하기 위해, 나는 나의 행렬의 일부와 내가 분석을 perfrom하는 데 사용되는 스크립트를 표시합니다 :

  P1  P2   P3   P4   P5  P6 
1 10.8750000 3.2888889 2.0769231 1.4166667 3.2395833 5.333333 
3 0.3645833 0.3027778 0.3212038 0.7671958 0.4993676 0.000000 
4 0.0000000 0.0000000 2.3500000 0.0000000 0.0000000 0.264000 
5 0.0000000 0.7333333 0.2692308 0.0000000 0.2343750 0.000000 
6 0.0000000 0.9277778 0.0000000 0.2936508 0.7291667 0.000000 
7 0.4166667 6.3500000 1.0925463 0.5476190 0.1885169 0.000000 
8 1.6250000 0.0000000 0.0000000 0.0000000 5.2187500 0.000000 
9 0.0000000 0.8111111 0.0000000 0.0000000 0.0000000 0.000000 
10 2.6770833 0.6666667 2.3304890 4.5906085 2.9652778 0.000000 
15 1.8020833 0.9666667 1.4807137 3.3878968 0.1666667 0.000000 
16 17.8750000 4.9555556 1.4615385 6.5000000 7.8593750 7.666667 
19 4.5312500 1.0555556 3.5766941 6.7248677 2.3196181 0.000000 
20 0.0000000 0.6777778 0.5384615 0.0000000 0.0000000 0.000000 
21 0.0000000 0.9777778 0.0000000 0.2500000 0.0000000 0.000000 
24 1.2500000 3.0583333 0.1923077 0.0000000 4.9583333 0.000000 
25 0.0000000 0.0000000 2.5699634 0.0000000 0.0000000 0.000000 
26 6.6666667 2.2333333 24.8730020 55.9980159 17.6239583 0.000000 
P1-P6 내 샘플링 스테이션입니다

, 그리고 가장 왼쪽 행 숫자는 제 다른 종입니다. 이 예제 행렬을 '플랫폼'과 같이 나타냅니다.

그 후, 나는 다음과 같은 코드 라인을 사용했습니다 :

dist <- function(x, ...){ 
    vegdist(x, ...) 
} 

result<-pvclust(platforms,method.dist = "bray",method.hclust = "ward") 

그것은 브레이 - 커티스 지수는 pvclust 패키지에서 원래 사용할 수 없습니다 때문에 내가 세 첫 codelines를 실행하는 것이 주목할 만하다. 따라서이 코드 라인을 실행하면 pvclust 함수에서 bray-curtis 인덱스를 지정할 수있었습니다.

누구나 pvclust 패키지와 함께 작동하지 않는 이유를 알고 있습니까?

도움이 될 것입니다.

종류와 관련,

마리

+0

코드 및 샘플 데이터, 재현 예를 제공하십시오.지금 당장은 진단하기가 어렵습니다.'stats :: hclust'를 사용할 때'ward.D' 또는'ward.D2'를 입력하는 것처럼 간단 할 수 있습니다.'pvclust :: pvclust'는'ward'를 사용합니다. –

+0

안녕 마이클 내 문제의 실질적인 예를 제공하기 위해 이미 내 소식을 업데이트했습니다. –

+0

와드의 방법은 * 제곱 유클리드 *를 기반으로합니다. 따라서 다른 거리의 결과를 얻을 수는 있지만 구의 원래 이론에 의해 더 이상 뒷받침되지 않을 수 있습니다. –

답변

1

이 관련 문제가 있습니다

  1. 당신이 hclust 호환 방법을 전달해야 method.hclust를 호출. 이론적으로 pvclustward을 확인하고 ward.D으로 변환하지만 ward.D 또는 ward.D2의 (올바른) 이름을 전달하려고합니다.
  2. 그런 식으로 dist을 덮어 쓸 수는 없습니다. 그러나 사용자 정의 함수를 pvclust으로 전달할 수 있습니다.

예를 들어,이 작업을해야합니다 :

library(vegan) 
library(pvclust) 

sample.data <- "P1 P2 P3 P4 P5 P6 
10.8750000 3.2888889 2.0769231 1.4166667 3.2395833 5.3333330 
0.3645833 0.3027778 0.3212038 0.7671958 0.4993676 0.0000000 
0.0000000 0.0000000 2.3500000 0.0000000 0.0000000 0.2640000 
0.0000000 0.7333333 0.2692308 0.0000000 0.2343750 0.0000000 
0.0000000 0.9277778 0.0000000 0.2936508 0.7291667 0.0000000 
0.4166667 6.3500000 1.0925463 0.5476190 0.1885169 0.0000000 
1.6250000 0.0000000 0.0000000 0.0000000 5.2187500 0.0000000 
0.0000000 0.8111111 0.0000000 0.0000000 0.0000000 0.0000000 
2.6770833 0.6666667 2.3304890 4.5906085 2.9652778 0.0000000 
1.8020833 0.9666667 1.4807137 3.3878968 0.1666667 0.0000000 
17.8750000 4.9555556 1.4615385 6.5000000 7.8593750 7.6666670 
4.5312500 1.0555556 3.5766941 6.7248677 2.3196181 0.0000000 
0.0000000 0.6777778 0.5384615 0.0000000 0.0000000 0.0000000 
0.0000000 0.9777778 0.0000000 0.2500000 0.0000000 0.0000000 
1.2500000 3.0583333 0.1923077 0.0000000 4.9583333 0.0000000 
0.0000000 0.0000000 2.5699634 0.0000000 0.0000000 0.0000000 
6.6666667 2.2333333 24.8730020 55.9980159 17.6239583 0.0000000" 

platforms <- read.table(text = sample.data, header = TRUE) 

result <- pvclust(platforms, 
        method.dist = function(x){ 
        vegdist(x, "bray") 
        }, 
        method.hclust = "ward.D") 
+0

안녕하세요 Michael, 빠른 답장을 보내 주셔서 감사합니다. 아쉽게도 코드 줄을 실행 한 후에도 오류 메시지가 계속 표시됩니다. 이 시간, codelines를 실행 한 후, 나는 다음과 같은 메시지가 뜹니다 : _ERROR as.character에 (X) : 가 '형의 벡터에 유형'폐쇄 '를 강요 할 수는 지금 무슨 일이 일어나고 있는지 어떤 생각을 character'_? –

+0

방금 ​​샘플 데이터를 추가했습니다 - 제공된 데이터와 함께 작동합니까? 나는'플랫폼'으로 무언가가 있을지도 모른다라고 생각한다. –

+0

작동하지 않았으며 동일한 오류 메시지가 다시 나타났습니다. 데이터 매트릭스 (실제로 데이터 프레임)를 두 번 확인했는데 모든 것이 정상적으로 보입니다. 내 데이터 매트릭스 구조의 첫 번째 줄은 다음과 같습니다. 'data.frame': \t 17 obs. 13 변수 : $ P1 : num 10.875 0.365 0 0 ... $ P2 : num 3.289 0.303 0 0.733 0.928 ... $ P3 : num 2.077 0.321 0 0.269 0 ... $ P4 : num 1.417 0.767 0 0 0.294 ... –

관련 문제