全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
2005 6
2010-09-08
问题有些复杂。有三个变量 a b c
a           b             c
1          m            c1
1          n             c2
1          s             c3
2          m            c4
2          n             c5
2          s             c6
2          t             c7
3         m           c8
3         n            c9
4


5


。。。。。。

c列是一些数值。想完成的是:
对于a列中任何两个观测值,(比如,1&2, 2&3, 1&3......)需要计算b列值相同的c列的乘积之和(拗口。。。)
比如对于a列中的1&2
需要计算:c1*c4+c2*c5+c3*c6 (如果没有匹配的就忽略,如c7,而且数据能够保证如果存在的话对应是一一的)
最后还想把这个乘积之和放到一个矩阵的(1,2)这个位置上。

弄了很久搞不定,望高手指点,谢谢!!
二维码

扫码加我 拉你入群

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

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

全部回复
2010-9-8 17:29:43
死办法,循环
二维码

扫码加我 拉你入群

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

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

2010-9-8 18:26:49
如何写这个循环呢 还是嵌套的循环
还有如何搜索b列match的记录呢
俺是初级菜鸟 谢谢了
二维码

扫码加我 拉你入群

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

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

2010-9-8 22:05:17
doreenjiao 发表于 2010-9-8 17:18
需要计算:c1*c4+c2*c5+c3*c6 (如果没有匹配的就忽略,如c7,而且数据能够保证如果存在的话对应是一一的)
*没明白红线部分,姑且认为不作处理, 如果b为string

*试试

reshape wide c,i(a) j(b) string
sum a
loca lm=r(max)
matr x=J(`lm',`lm',0)
forvalue i=1/`lm' {
forvalue j=1/`lm' {
if `i'~=`j'{  //对于a列中任何两个观测值,如果包含相同,则去掉该条件
   foreach vnm of varlist c* {
    if `vnm'[`i']~=. & `vnm'[`j']~=.{
     mat x[`i',`j']=`vnm'[`i']*`vnm'[`j']+x[`i',`j']
    }
   }
  }
}
}
matlist x
*等于0视为不合条件
*有一种情况没有考虑:真正的积和等于0
二维码

扫码加我 拉你入群

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

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

2010-9-9 08:38:23
1# doreenjiao
* 对积尔和为0的克服
tempfile d1
reshape wide c,i(a) j(b) string
save `d1',replace
renpfix "" t
levelsof ta,loc(lvl)
expand _N,
gsort ta
egen a=fill(`lvl' `lvl' )
merg m:1 a using `d1'
foreach v of varlist c*{
gen j`v'=t`v'*`v'
}
egen jsum=rowtotal(j*)
keep a ta jsum
reshape wide jsum, i(a) j(ta)
mkmat jsum*,mat(x)
matlist x
二维码

扫码加我 拉你入群

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

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

2010-9-9 12:30:41
Try this:

preserve
encode b, gen(d)
summ d
local maxd= r(max)
drop b

reshape wide c, i(a) j(d)
foreach x of varlist * {
        replace `x' = 0 if `x' == .
}

gen value = 0
forvalue i = 1 / `maxd' {
        replace value = value + c`i' * c`i'[_n-1] if _n>1
}

mkmat a value, matrix(data)
matrix list data

restore
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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