3

私が書いている論文の視覚化を行っていると、CSVでロードされたテーブルからマトリックスにデータを転送するのに行き詰まります(後でヒートマップをプロットできるようにするため)。

私はこれをやっています:

dta.tesiscsv<- read.csv("dtatesis.csv", header=TRUE)

次のようなデータサンプルをロードするには:

Col,Row,Kf
1,1,100
1,2,97.14285714
2,1,100 
...,...,...

しかし、次のステップ(空行列を作成し、数式に基づいてテーブルからテーブルにデータを転送する)で少し失われます:

X<- matrix(nrow= 48, ncol=12)
X[dta.test[,c(1:2)]] <- dta.test$Kf
4

3 に答える 3

5

acastパッケージから使用しreshape2て、必要なマトリックス形式のデータを取得できます。

require(reshape2)
acast(dta.test, Row ~ Col, value.var = "Kf")

これにより、欠落している値が。で埋められますNA。たとえば、代わりに0で埋めたい場合は、

acast(dta.test, Row ~ Col, value.var = "Kf", fill = 0)

それを達成するでしょう。これをラップしheatmap(.)てヒートマップを取得できます。

于 2013-03-24T12:10:17.227 に答える
1

どうですか(Col / Row-combinationごとに1つの行がある場合は意味があります):

dta.tesiscsv <- read.table(text="Col,Row,Kf
1,1,100
1,2,97.14285714
2,1,100",h=T,sep=",")

X <- tapply(dta.tesiscsv[,3],dta.tesiscsv[,2:1],head,1)
heatmap(X)
于 2013-03-24T12:53:16.527 に答える
1

あなたは本当に近いです。マトリックスインデックスを使用するには、インデックスはdata.frameではなくマトリックスである必要があります。

X[as.matrix(dta.test[,c(1:2)])] <- dta.test$Kf
于 2013-03-24T13:09:20.973 に答える