2014-10-31 3 views
0

Я ищу reshape этот long набор данных в wide один. Реорганизация будет выполнена с fartyid как мой уникальный идентификатор на landingsdato, что означает, что новое наблюдение будет состоять из fartyID, которые разделяют landingsdato. Большинство моих переменных, не включенных здесь, могут быть свернуты без каких-либо дополнительных соображений, так как, условно для этих двух, они будут иметь одинаковые значения для каждого наблюдения.Реорганизация комплекса данных в Stata, длинный до широкого

Проблемы является категориальным переменным, включенным здесь (artkode, produkttilstandkode и strrelsesgruppering), которые я хотел бы сохранить всю информацию о себе, в обобщенном виде, так что я могу работать с ними для всего набора данных. 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. Какие расчеты заставляют вас думать, что вам требуется «изменить форму»? –

+0

Привет, извините за поздний ответ. Мне как-то удалось создать дубликаты учетных записей и не проверял это со времени публикации. В любом случае, объяснение, почему и как я это решил, - это раздел ответа. –

ответ

1

Это ответ на мой пост, но и к Нику, который похвалил выше.

Причина, по которой требуется изменить форму, заключается в том, что каждое наблюдение за «фартйидом» является описанием судна, поставляющего рыбу. Тот же «landingsdato» для индивидуалистического «fartyid» - это всего лишь несколько строк, описывающих одну и ту же доставку, поскольку данные были собраны из документов с отдельными линиями для разных покупателей рыбы при доставке. Цель состояла в том, чтобы получить всю не постоянную информацию для каждой доставки в одну строку и выполнить мои регрессии оттуда. Я выполнил это с помощью следующего кода:

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. 

Я разрушил все переменные для каждого отдельного отключения. Информация о корабле, конечно, постоянна и рушилась (сначала), в то время как комбинация двух переменных, которые были транспонированы, я использовал (сумму) для. В конце концов, это дает мне информацию об общем улове веса и стоимости для каждой комбинации видов и ее состояния (с головой или без головы и т. Д.). Мне также пришлось переименовать все переменные, которые были сгенерированы в цикле. Наконец, упомянутый «strrlesgruppering» был полностью исключен из-за несогласованности.

+0

Ваш код неполный (нет '}') и выглядит частично схематично. Что такое 'constant variable1' и т. Д.? Более позитивно, проверьте 'отдельный' и' egen, tag() '. –

+0

Ах, извините. Пришлось вернуться в мой Do-файл и получить небрежный при копировании. A '}' - это все, что отсутствует. Код коллапса был просто приведен в качестве примера. Весь код содержит более 900 переменных.Я могу опубликовать их, если вы хотите? –

+0

Спасибо, но, очевидно, нам не нужно видеть более длинный код. Более значительная точка заключается в следующем: часто полезно указывать, когда код не является точным используемым кодом. Многие вопросы основатели о том, что люди не понимают точный код, который они использовали. –

Смежные вопросы