全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
3772 2
2013-08-02
数据结构举例如下。"."表示缺省值。
product  group  Jan Feb March April May June July August
A            a           1      .     2       3      2      4      .      4
A            b            1      .      .       4      .        .       .      5
A            b         .        .      .       4      .        5     .      5
B            a          1      .     2       3      2      4      .      4
B            a           1      .      .       4      .        .       .      5
B            b             .        .      .       4      .        5     .      5
C            a          1      .     2       3      2      4      .      4
C            a            1      .      .       4      .        .       .      5
C            c            .        .      .       4      .        5     .      5
有两个问题希望能有高手帮忙。
(1)如何将同一product分组内(分组A,B,C)并且是同一group(分组a,b,c)的同一变量的(Jan, Feb,.....)不同观测值合并?
   比如最终希望得到以下结果。
product  group  Jan Feb March April May June July August
A            a           1      .     2       3      2      4      .      4
A            b           1      .      .       8      .        5      .      10
B            a          2     .     2       7      2      4      .      9
B            b          .        .      .       4      .        5     .      5
C            a          2      .     2       7      2      4      .      9
C            c           .        .      .       4      .        5     .      5
(2)对于合并后的各组,如何计算连续的有观测值的变量个数?

例如对于
product  group  Jan Feb March April May June July August
A            a           1      .     2       3      2      4      .      4
A            b           1      .      .       8      .        5      .    10

希望输出  
      product  group    start     end     dur
              A      a         Jan     Jan           1
              A      a      March   June          4
              A      a      August   August      1
              A     b       Jan     Jan             1
              A      b       April    April           1
              A      b       June    June         1
             A      b        August  August    1
希望我的表述清楚了,谢谢!



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2013-8-3 06:08:37
inp str2 product str2 group Jan Feb March April May June July August
A a 1 . 2 3 2 4 . 4
A b 1 . . 4 . . . 5
A b . . . 4 . 5 . 5
B a 1 . 2 3 2 4 . 4
B a 1 . . 4 . . . 5
B b . . . 4 . 5 . 5
C a 1 . 2 3 2 4 . 4
C a 1 . . 4 . . . 5
C c . . . 4 . 5 . 5
end
*****以上只是输入楼主资料
mvencode _all, mv(0)
foreach i of var Jan-August{
bys product group: egen `i'_new=total(`i')
replace `i'= `i'_new
drop `i'_new
}
duplicates drop
mvdecode _all, mv(0)   
*****以上是回答楼主的第一个问题
loc s 0
g id=product+group
foreach k of var Jan-August{
loc s=`s'+1
ren `k' month`s'   
}
reshape long month, i(id) j(year)
egen nid=group(id)
xtset nid year

tsspell, c(month<.)
egen start=min(year), by(id _spell)
egen end=max(year), by(id _spell)
egen dur=max(_seq),by(id _spell)
drop if month==.
su nid
loc mm=r(max)
forv j=1/`mm'{
  duplicates drop _spell if nid==`j',force
}
drop id year nid _seq _spell _end month
*****以上是回答楼主第二个问题
*****最后start与end变数我用数字代表月份,如果楼主不是很满意,请自行修改一下
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-8-3 09:41:34
h3327156 发表于 2013-8-3 06:08
inp str2 product str2 group Jan Feb March April May June July August
A a 1 . 2 3 2 4 . 4
A b 1 . . ...
谢谢!学习了!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群