2013-05-27 3 views
-1

У меня есть файл Stata file1.dta. Одна из переменных - income. Мне нужно вычислить average_income, назначить его локальному макросу и сохранить в другом файле Stata, New.dta. Я попытался следующим в .do файле:Как сохранить среднее значение в локальном макросе, а затем сохранить его в другом файле Stata?

#delimit; 
clear; 
set mem 700m; 

use file1.dta; 
local average_income = mean income; 

use New.dta; 
gen avincome = average_income; 

Это не работает ...

ответ

1

Один из способов сделать это было бы следующее:

#delimit; 
clear; 
set mem 700m; 

use file1.dta; 
quietly: summarize income; 
local average_income = r(mean); 

use New.dta; 
gen avincome = `average_income'; 
+0

Привет @stately_treasures спасибо за ответ. Я пробовал и имел следующую ошибку:. 'gen avincome = average_income; average_income not found' – Buras

+0

Вам нужно '\' average_income'' в последней строке. Это локальный макрос и должен называться таким. В противном случае Stata будет искать переменную или скаляр с этим именем и не найдет ее. –

+0

Упс, спасибо, что указал на опечатку. –

2

Это пересекается с другим постом, а именно How to retrieve data from multiple Stata files?. Вы не сказали, почему вы думаете,

use file1.dta; 
local average_income = mean income; 

будет работать, но вторая строка - просто фантастический синтаксис. Существуют различные способы вычисления среднего значения переменной, наиболее распространенным из которых является использование summarize и получение среднего значения от r(mean).

Возможно, вы удалите этот вопрос: он не предназначен для долгосрочных целей.

+0

спасибо @Nick Кокс. Я отметил это – Buras

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