2017-11-10 1 views
1

私は、8x12グリッドからの測定値を表すRの値の列を持っています。単一列の値から8x12ヒートプロットを作成するにはどうすればよいですか?

ここには測定の最初の4行があります。 A1-H1はグリッド内の行1を表し、A2-H2は行2などを表します。合計12行あります。このデータを8x12(このダミーの例では8X4)の行列に変換するにはどうすればいいですか?ヒートマップを作成して、相対的なWeight値を、データが失われたときに失われたグリッドの元の形を再現するように視覚化できます単一の列としてインポートされますか?

ありがとうございます。

Cell Weight 
A1 2 
B1 2 
C1 2 
D1 2 
E1 2 
F1 2 
G1 2 
H1 2 
A2 2 
B2 0.1 
C2 2 
D2 4 
E2 2 
F2 0.1 
G2 2 
H2 2 
A3 2 
B3 2 
C3 2 
D3 2 
E3 2 
F3 4 
G3 2 
H3 2 
A4 2 
B4 2 
C4 6 
D4 2 
E4 2 
F4 2 
G4 2 
H4 2 

答えて

1

私はあなただけのテーブルから行/列情報を抽出し、geom_tileのためにそれを使用し、そのためのマトリックス必要とは思わない:

df$Row <- gsub("[A-Z]", "", df$Cell) 
df$Col <- gsub("[0-9]", "", df$Cell) 
library(ggplot2) 
ggplot(df, aes(Col, Row, fill = Weight)) + 
    geom_tile() 

enter image description here

1

使用ライブラリtidyrdplyr

df <- read.table(header=TRUE, as.is=TRUE, text='Cell Weight 
A1 2 
B1 2 
C1 2 
D1 2 
E1 2 
F1 2 
G1 2 
H1 2 
A2 2 
B2 0.1 
C2 2 
D2 4 
E2 2 
F2 0.1 
G2 2 
H2 2 
A3 2 
B3 2 
C3 2 
D3 2 
E3 2 
F3 4 
G3 2 
H3 2 
A4 2 
B4 2 
C4 6 
D4 2 
E4 2 
F4 2 
G4 2 
H4 2') 
m <- df %>% separate(Cell, into=c('column','rows'), sep=1) %>% spread(column, Weight) 
rownames(m) <- m$rows 
m$rows <- NULL 
heatmap(as.matrix(m)) 
関連する問題