2017-01-19 13 views
0

나는 hclust 기능을 사용하고 있습니다를 사용하도록 변수 벡터를 만드는 방법 :이 예에서와 같은 DF에 적용 큰 스크립트에 hclust에

HClust <- hclust(d = dist(model.matrix(~-1 + A + B + C + D, df))^2, method = "centroid") 

나는 한 번만 지정하고 싶습니다 df의 변수, 예. MgO, Zn, CaO ... hclust()를 호출하면 자동으로 가지고 싶습니다.

hclust 호출에 사용할 형식으로 데이터 프레임 변수를 포함하는 벡터를 만들려고했습니다. 그러나 그 결과 나타나는 멍멍 모양은 정확하지 않습니다.

vars_for_clust 
[1] "A+" "B+" "C+" 

과 hclust 통화에서이 벡터 사용 : 다음주는

vars_for_clust <- paste(colnames(df),"+") 

이 오류를 제공하지 않는 경우에도 때문에

HClust <- hclust(d = dist(model.matrix(~-1 + vars_for_clust, df))^2, method = "centroid") 

하지만 뭔가 잘못을의 결과 dendrogram이 정확하지 않음 (모든 수직선은 동일 함)

감사합니다. https://github.com/esteful/kaixo

+0

는 샘플 데이터를 추가 할 수 있습니다 같은 -

당신이, 당신은 문자열로 전체 공식을 구성해야하며 다음 공식으로 변환 할 필요 얻으려면? –

답변

1

이 두 가지 문제는 여기에 있습니다 :에

샘플 데이터 paste의 1. 사용 model.matrix에 인수로 vars_for_clust의 2. 사용.

(FormString <- paste(c("~ -1", colnames(df)), collapse=" + ")) 
[1] "~ -1 + A + B + C" 
HClust <- hclust(d = dist(model.matrix(as.formula(FormString), df))^2, method = "centroid")