2016-12-24 4 views
2

ich einige Daten in Excel-Blatt haben, die wie folgt aussieht:Listen in Matrix

User | Query 
u1  | q3 
u2  | q7  
u2  | q7 
u3  | q1 
u3  | q10 
u3  | q8 
u4  | q9 
u4  | q2 

Jetzt habe ich wie diese Daten in Matrix abdecken wollen:

q1 q2 q3 q7 q8 q9 q10 
u1 0 0 1 0 0 0 0 
u2 0 0 0 2 0 0 0 
u3 1 0 0 0 1 0 1 
u4 0 1 0 0 0 1 0 

Ich weiß nicht, was ist der Name dieser Art von Matrix, aber ich möchte aus dieser Matrix einen Graphen machen. So ist es eine Möglichkeit, die Matrix aus der obigen Liste unter Verwendung eines beliebigen entweder „R“ oder „Excel erwähnt zu bekommen?

+0

Betrachten Sie die Top-Antwort in [dieser Beitrag] (http://stackoverflow.com/questions/26207850/create-sparse-matrix-from-a-data-frame) eine spärliche Matrix zu machen Objekt (vielleicht ist das, was Sie wollen, wenn es viele Nullen gibt), –

Antwort

0

Dies ist ein Zwei-Wege-Kontingenztabelle.

Als erstes müssen Sie Ihre Daten in R lesen von Excel-Tabelle als Datenrahmen. Sie read.csv oder read.table verwenden können, aber wie Sie nicht eine Probe Ihres Blattes vorsah, kann ich nicht genau Code für diese produzieren.

Nun wird der Datenrahmen annehmen d ist, dann können wir tun

xtabs(~ User + Query, d) 

#  Query 
#User q1 q10 q2 q3 q7 q8 q9 
# u1 0 0 0 1 0 0 0 
# u2 0 0 0 0 2 0 0 
# u3 1 1 0 0 0 1 0 
# u4 0 0 1 0 0 0 1 

oder

table(d[[1]], d[[2]]) 

#  q1 q10 q2 q3 q7 q8 q9 
# u1 0 0 0 1 0 0 0 
# u2 0 0 0 0 2 0 0 
# u3 1 1 0 0 0 1 0 
# u4 0 0 1 0 0 0 1 
+0

Danke Zheyuan Li. Ihre Antwort hilft perfekt. schätze deine Mühe – rafiyz

Verwandte Themen