我在R中有一列值代表来自8x12网格的测量结果:
以下是前四行测量。 A1-H1表示网格中的第1行,A2-H2表示第2行等。我总共有12行。如何将此数据转换为8x12的矩阵(在此虚拟示例中为8X4),以便我可以创建一个热图,以一种方式显示相对权重值,以便概括在数据丢失时丢失的网格的原始形状作为单列导入?
提前谢谢。
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
答案 0 :(得分:1)
使用库tidyr
和dplyr
:
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))
答案 1 :(得分:1)