楼主: yayacuiliu
3803 2

[数据管理求助] 观测值分组合并 [推广有奖]

  • 0关注
  • 0粉丝

硕士生

22%

还不是VIP/贵宾

-

威望
0
论坛币
4 个
通用积分
2.0004
学术水平
1 点
热心指数
1 点
信用等级
1 点
经验
2817 点
帖子
87
精华
0
在线时间
158 小时
注册时间
2008-9-16
最后登录
2024-9-27

楼主
yayacuiliu 发表于 2013-8-2 15:20:11 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
数据结构举例如下。"."表示缺省值。
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
希望我的表述清楚了,谢谢!



二维码

扫码加我 拉你入群

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

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

关键词:观测值 Product AUGUST produc Group product

沙发
h3327156 发表于 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变数我用数字代表月份,如果楼主不是很满意,请自行修改一下
已有 2 人评分学术水平 热心指数 信用等级 收起 理由
yayacuiliu + 1 + 1 + 1 启发很大,解决方法非常好!
ywh19860616 + 3 + 3 + 3 热心

总评分: 学术水平 + 4  热心指数 + 4  信用等级 + 4   查看全部评分

藤椅
yayacuiliu 发表于 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 . . ...
谢谢!学习了!

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-5 23:53