2016-10-03 32 views
-2

我正在尝试可视化过程的转换频率。我有以下数据>在R中构造一个由两个向量组成的转换矩阵

from to 
1 4 
4 5 
1 3 
1 3 
4 5 
... 

我所要做的是创建这些转变的频率矩阵的热图,所以对于上面的示例,

1 3 4 5 
1 0 2 1 0 
3 0 0 0 0 
4 0 0 0 2 
5 0 0 0 0 

之前,我另起炉灶,在那里R中的任何预定义的函数,可以给我这样的结果?

谢谢!

+0

重的欺骗目标(见thelatemail答案),你需要:'列弗< - 排序(由工会(DF $,$ DF对));表(因子(df $ from,levs),因子(df $ to,levs))' – Cath

+0

另请看'igraph :: from_adjacency'。 – Axeman

回答

-1

试试这个:

df 

    from to 
1 1 4 
2 4 5 
3 1 3 
4 1 3 
5 4 5 

df$count <- 1 
df <- aggregate(count~from+to, data=df, sum) 
nodes <- unique(c(df$from,df$to)) 
df1 <- merge(expand.grid(from=nodes, to=nodes), df, by=c('from','to'), all=TRUE) 
df1$count[is.na(df1$count)] <- 0 
library(reshape2) 
dcast(df1, from~to, value.var = 'count') 

    from 1 3 4 5 
1 1 0 2 1 0 
2 3 0 0 0 0 
3 4 0 0 0 2 
4 5 0 0 0 0 
+0

谢谢,这个作品! –