1

次のdental.csvファイル

item,x,y,z
A1,66,89,122
A2,14,44,-9
A3,-17,199,11
A35,99,0,12
test,15,144,15

私は次のRスクリプトを書きました

mycoord<-read.csv("dental.csv")
d<-dist(mycoord)
h<-hclust(d)
plot(h, lab=mycoord$item)

これは、次のように「テスト」座標を最も近い値に一致させます

ここに画像の説明を入力

私がする必要があるのは、整数x、y、zを取り、それらをデータフレームに「テスト」として配置し、樹形図をプロットする関数です。助けはありますか?

別のこと、上記の同じRスクリプトに対して、次を追加しました

newdata<-mycoord[,2:4]
heatmap(as.matrix(newdata))

私は次のチャートを取得します

ここに画像の説明を入力

何らかの理由で、ヒートマップにラベルを追加できません (「1」、「2」、「3」などではなく、「A3」、「A4」などを意味します) パラメータを使用するとエラーが発生しますlab=mycoord$item

4

2 に答える 2

2

元のデータ マトリックスとテスト マトリックスを取り、それを組み合わせてクラスタリングにフィードする関数が必要なだけですか? みたいに思う

testClust <- function(data,test){
    mycoord <- rbind(data,test)
    d<-dist(mycoord)
    h<-hclust(d)
    plot(h, lab=mycoord$item)
}
于 2013-02-19T08:15:20.493 に答える
1

test次のように、最初に CSV をロードしないでください。

df <- read.csv(header=T, text="item,x,y,z
A1,66,89,122
A2,14,44,-9
A3,-17,199,11
A35,99,0,12")

次に、次のようにロードtestします。

test <- data.frame(item="test", x=15, y=144, z=15)

次に、次のように使用して距離を計算しますrbind

d <- dist(rbind(df[,2:4], test[,2:4]))
h <- hclust(d)
plot(h, labels=c(as.character(df$item), as.character(test$item)))

これはあなたが必要とするものですか?

2 番目の部分:

dd <- rbind(df, test)
dd.m <- as.matrix(dd[,2:4])
row.names(dd.m) <- dd[,1]
heatmap(dd.m)

ここに画像の説明を入力

于 2013-02-19T08:14:02.073 に答える