Stata:计算一段时间内的平均值
我需要做以下20个周期的计算,但没有使用Stata:计算一段时间内的平均值,stata,Stata,我需要做以下20个周期的计算,但没有使用forval命令,因为我只是在学习如何处理Stata 这是我需要重复20节课的内容: egen avg1 = mean(price1) if Period == 1 egen avg2 = mean(price2) if Period == 1 gen AVG = avg1+avg2 gen AVG_t1=AVG/2 drop avg1 avg2 AVG 并尝试使用forval解决此问题: sort Period local j = Peri
forval
命令,因为我只是在学习如何处理Stata
这是我需要重复20节课的内容:
egen avg1 = mean(price1) if Period == 1
egen avg2 = mean(price2) if Period == 1
gen AVG = avg1+avg2
gen AVG_t1=AVG/2
drop avg1 avg2 AVG
并尝试使用forval
解决此问题:
sort Period
local j = Period
forval j = 1/20 {
egen avg1 = mean(price1) if Period == `j'
egen avg2 = mean(price2) if Period == `j'
gen AVG = avg1+avg2 if Period == `j'
gen AVG_t`j'=AVG/2 if Period == `j'
drop avg1 avg2 AVG if Period == `j'
}
研究
egen
的帮助,看看它比您想象的更灵活
egen avg1 = mean(price1), by(Period)
egen avg2 = mean(price2), by(Period)
gen AVG_t1 = (avg1 + avg2) / 2
您的循环将失败,因为第二次循环已存在。记录的是
bysort Period: egen avg1 = mean(price1)
by Period: egen avg2 = mean(price2)
但是上面的语法会起作用 “相处不好”是什么意思?你对问题描述得越好,你的答案就越好。您是否收到错误消息或只是意外的结果?在Stata中,处理数据子集的首选方法是通过
by:
前缀。请参阅由和Nick Cox提供的帮助。