2014-10-31 72 views
0

我期待reshape這個long數據集合成一個wide之一。重塑將用fartyid完成,因爲我的唯一身份證件的條件是landingsdato,這意味着新的觀察將由所有fartyID誰共享landingsdato組成。我沒有包括在內的大多數變數都可以在沒有進一步考慮的情況下進行摺疊,因爲在這兩個條件下,它們對於每個觀測值都會保持相同的值。重塑Stata中的複雜數據集,長到寬

的問題在這裏包括分類變量(artkodeprodukttilstandkodestrrelsesgruppering)我想保持的所有信息,在一個通用的方法,這樣我可以與他們合作對整個數據集其中。 produkvekt是一個數字變量,表示數量爲artkode

fartyid landingsdato artkode artbokml produkttilstandkode strrelsesgruppering produktvekt 
1926005936 01.03.2004 1032 Sei   211     4023999    20 
1926005936 01.03.2004 1032 Sei   211     4012023    14 
1926005936 01.03.2004 102201 Skrei   641     3000000   55 
1926005936 01.03.2004 102201 Skrei   642     3000000   60 
1926005936 01.03.2004 102201 Skrei   211     4010025   60 
1926005936 01.03.2004 102201 Skrei   211     4025999   500 

我不能把我的頭圍繞如何完成,如果可能的話,所以我很感激所有的輸入。

分類變量的唯一值:

strrelsesgruppering: 457 
produkttilstandkode: 53 
artkode: 149 

由於我怎麼可能會風了一個例子:

fartyid landingsdato 1032 produkttilstandkode strrelsesgruppering produktvekt 
1926005936 01.03.2004 1  211     4023999    20 

然後後續artkode沿着排成一行,但是這會給我使用數據集時出現問題,因爲我在不同的列中有幾個相同的artkode

如果可能的話,我不能把我的頭圍繞在如何完成這件事上。

+0

爲什麼你想要一個「寬」的結構?這些對於大多數Stata運營來說都處於良好狀態。什麼計算讓你覺得你需要一個'重塑'? – 2014-10-31 13:28:16

+0

嗨,對於遲到的回覆感到抱歉。我以某種方式設法創建重複的帳戶,並沒有檢查自發布後。無論如何,解釋爲什麼和如何解決它是答案部分。 – 2014-12-05 10:17:46

回答

1

這是對我的文章的回答,也是對上面推薦的Nick的回答。

想要重塑的原因是,每一個「fartyid」的觀察是一個交付魚的船隻的描述。單個「f」的同一個「着陸點」僅僅是描述同一交付的幾行,因爲數據是從單獨的文件中收集的,供不同買家在交付時購買。目的是爲每一次交付獲得所有非恆定信息,並從那裏運行我的迴歸。我做到了這一點與代碼follwing位:

sort fartyid landingsdato_ny 
egen IDtur=group (fartyid landingsdato_ny) 

sort artkode produkttilstandkode 
egen kombinasjon=group(artkode produkttilstandkode) 
forvalues k = 1/309 { 
    gen RQArtProd`k' = rundvekt if kombinasjon==`k' 
    gen FQArtProd`k' = fangstverdi if kombinasjon==`k' 
    compress RQArtProd`k' 
    compress FQArtProd`k' 

collapse (first) *constant variable1 constant variable2.... (sum) **RQArtProd`k' FQArtProd`k', by(IDtur) 

*These variables are just an illustration of several constant variables 
**Also an illustration. Original code contains around 900 variables generated by the above loop. 

我崩潰了所有變量對每個蹦牀網上單人旅行。關於這艘船的信息當然是不變的,並且在我使用(總和)換算的兩個變量的組合的情況下(第一次)崩潰了。最後,這給我提供了有關物種和它的條件(有或沒有頭等)的每種組合的總重量和價值的信息,我還必須重命名循環中生成的所有變量。最後,由於不一致性,所提到的「條款限制」完全被取消。

+0

你的代碼是不完整的(不是'}'),看起來在部分原理圖中。什麼是「常量變量1」等?更積極的一點是,檢查'separate'和'egen,tag()'。 – 2014-12-05 10:19:41

+0

啊,對不起。必須重新進入我的Do-文件並在複製時變得sl py。一個'}'是缺少的。崩潰代碼僅僅是一個例子。整個代碼包含900多個變量。如果你願意,我可以發佈它們嗎? – 2014-12-05 13:51:41

+0

謝謝,但顯然我們不需要看到確切的更長的代碼。更大的一點是:當代碼不是使用的確切代碼時,標記通常很有用。許多問題始於人們對他們使用的確切代碼不清楚。 – 2014-12-05 14:10:50