2016-04-26 14 views
0

Ich habe einen Datensatz, der so aussieht (var1, var2, var3, ... haben mögliche Werte von 1,2,3,4,5,6).Werte kollidieren

var1 (3,3,4,1,2,4,5,6 ...) var2 (4,5,2,2,3,1,6,6 ...) var3 (1, 2,2,4,2,3,6,5 ...)

Und ich würde gerne die Anzahl der Werte von var1 var2 var3 ... durch Werte (1,2,3,4,5 6) und erstellen eines Datensatzes wie folgt aus:

value (1,2,3,4,5,6)

var1_count (1,1,2,2,1,1)

var2_count (1,2,1,1,1,2)

var3_count (1,3,1,1,1,1)

ich den Befehl versucht collapse(count), aber ich habe nicht eine Gruppierung Variable. Gibt es eine Möglichkeit, Variablen nach ihren Werten zu aggregieren?

+0

Können Sie Ihren Beitrag formatieren? Sie können Apostroph verwenden, um "Ihre Werte" oder "Ihre Codes" zu trennen. Sie können zwei Zeilenumbrüche hinterlassen, um Ihre Paragrafen zu trennen. – ykaragol

+1

@ M.Pflaumbaum Es ist besser, diese Details direkt in Ihre Frage und nicht als Kommentar einzufügen. – lmo

Antwort

2

Bitte lesen Sie Tipps zum Thema MCVE: https://stackoverflow.com/help/mcve

Ihre Daten eingelesen werden können, wie folgt.

clear 

mat var1 = (3,3,4,1,2,4,5,6) 
mat var2 = (4,5,2,2,3,1,6,6) 
mat var3 = (1,2,2,4,2,3,6,5) 

set obs 8 
forval j = 1/3 { 
    gen var`j' = var`j'[1, _n] 
} 

list, sep(0) 

    +--------------------+ 
    | var1 var2 var3 | 
    |--------------------| 
    1. | 3  4  1 | 
    2. | 3  5  2 | 
    3. | 4  2  2 | 
    4. | 1  2  4 | 
    5. | 2  3  2 | 
    6. | 4  1  3 | 
    7. | 5  6  6 | 
    8. | 6  6  5 | 
    +--------------------+ 

Eine Möglichkeit, diese tabellarisch zu bekommen, ist tabm zu installieren mit

ssc install tab_chi 
help tabm 
tabm var? 

      |        values 
    variable |   1   2   3   4   5   6 |  Total 
-----------+------------------------------------------------------------------+---------- 
     var1 |   1   1   2   2   1   1 |   8 
     var2 |   1   2   1   1   1   2 |   8 
     var3 |   1   3   1   1   1   1 |   8 
-----------+------------------------------------------------------------------+---------- 
    Total |   3   6   4   4   3   4 |  24 

tabm auch eine replace Option bietet die tabellarischen als neuen Datensatz zu speichern.

+0

Vielen Dank Nick, ich habe versucht, die Tabellierung mit 'tabm var *, replace' zu ​​speichern und habe ein Dataset mit zwei Variablen:' _stack' und '_values'.
_stack (var1, var2, var3 ...)
_values ​​(3,3,4,1,2,4,5,6,4,5,2,2,3,1,6,6,1 , 2,2,4,2,3,6,5)
Wie erzeuge ich die Zählwerte von 1,2,3,4,5,6 als Häufigkeitsvariablen? –

+0

'contract _values ​​_stack' gefolgt von' reshape wide _freq, i (_stack) j (_values) 'kann sein, wonach du fragst. –

Verwandte Themen