2016-10-13 6 views
1

は、私は、次の例で、次のRとマトリックをやろうとしています:マトリックス:列名

> dput(a) 
structure(list(from = c("City1", "City2", "City3", "City4", "City5", 
"City1", "City2", "City3", "City4", "City5", "City1", "City2", 
"City3", "City4", "City5", "City1", "City2", "City3", "City4", 
"City5", "City1", "City2", "City3", "City4", "City5"), to = c("City1", 
"City1", "City1", "City1", "City1", "City2", "City2", "City2", 
"City2", "City2", "City3", "City3", "City3", "City3", "City3", 
"City4", "City4", "City4", "City4", "City4", "City5", "City5", 
"City5", "City5", "City5"), N = c(0L, 4L, 2L, 4L, 0L, 4L, 0L, 
0L, 1L, 3L, 1L, 2L, 0L, 2L, 0L, 2L, 0L, 2L, 0L, 3L, 1L, 3L, 1L, 
2L, 0L)), .Names = c("from", "to", "N"), row.names = c(NA, -25L 
), class = c("data.table", "data.frame"), .internal.selfref = <pointer: 0x00000000001c0788>) 

私は私がそれを得ることができる

from N.City1 N.City2 N.City3 N.City4 N.City5 
1: City1   
2: City2   
3: City3  COUNT OF OCCURENCES 
4: City4   
5: City5  

とシンプルなマトリックをしたいと思います。 final <- reshape(a,idvar="from",timevar="to",direction="wide")

> final 
    from N.City1 N.City2 N.City3 N.City4 N.City5 
1: City1  0  4  1  2  1 
2: City2  4  0  2  0  3 
3: City3  2  0  0  2  1 
4: City4  4  1  2  0  2 
5: City5  0  3  0  3  0 

しかし、列名は、非常に奇妙です。私は "N"を持っていますか?各列名の前に?私はそれを削除するためにgsub()を使用することができますが、より良い方法を持つことは可能ですか?

ありがとうございました!

答えて

1

我々はdata.table

library(data.table) 
dcast(a, from ~to, value.var = "N") 
# from City1 City2 City3 City4 City5 
#1: City1  0  4  1  2  1 
#2: City2  4  0  2  0  3 
#3: City3  2  0  0  2  1 
#4: City4  4  1  2  0  2 
#5: City5  0  3  0  3  0 
+0

からdcastで簡単にこれを行うことができますただ、それを得たオンラインすでに答えがありました...ありがとう! – Floni