2013-01-10 5 views
1

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

у меня есть время -серийные данные о продажной цене (p) и количестве проданных (q) для 10 продуктов в одном файле данных (например, 20 переменных, p01-p10 и q01-q10). Я борюсь с соответствующей командой stata, которая вычисляет временные ряды продаж (pq) для каждого из этих 10 продуктов (т. Е. Pq01-pq10).

Большое спасибо за помощь.

ответ

2
forval i = 1/10 { 
     local j : display %02.0f `i' 
     gen pq`j' = p`j' * q`j' 
} 

Стандартная петля над 1/10 не даст вам начального нуля в 01/09. Для этого нам нужно использовать соответствующий формат. Смотрите также

@article {pr0051, автор = "Кокс, Нью-Джерси", название = "Stata наконечник 85: Циклическое над nonintegers", журнал = "Stata Journal", издатель = "Stata Пресс", адрес = "College Station, TX", volume = "10", number = "1", year = "2010", pages = "160-163 (4)", url = "http: // www.stata-journal.com/article.html?article=pr0051 " }

(добавлено позже) Другой способ сделать это -

local j = string(`i', "%02.0f") 

Это делает более явным то, что вы сопоставляете цифры 1, ..., 10 с строками «01», ..., «10».

+0

Большое спасибо Нику. – Arif