全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
2372 6
2020-11-11
我在做数据整理的时候,遇到如下问题:
有数据Njai_k,i=[1,6],j=[1,20],k=[1,16]。
想得到Njai=Njai_1+Njai_2+……+Njai_16 i=[1,6],j=[1,20](比如N1a1=N1a1_1+N1a1_2+……+N1a1_16)
最后得到120个加总后的新变量。数据都是0-1变量。

我用的命令是
  • forvalues k=1/16 {
  •         forvalues i=1/6 {
  •        forvalues j=1/20 {
  •                         egen N`j'a`i'=rowtotal(N`j'a`i'_`k')
  •                 }
  •      }
  • }



变量能生成出来,但结果不太对。

恳切请求各位的帮助!
二维码

扫码加我 拉你入群

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

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

全部回复
2020-11-11 09:37:36
因为是对16个变量求总,如果通过最笨的方法要120(6*20)次,所以想试试用循环做
希望各位大佬老帮帮我
二维码

扫码加我 拉你入群

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

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

2020-11-11 13:09:43
Miuka。 发表于 2020-11-11 09:37
因为是对16个变量求总,如果通过最笨的方法要120(6*20)次,所以想试试用循环做
希望各位大佬老帮帮我[cr ...
不知道你的这个数据是怎么排列的,是值为一个变量,下标参数为三个变量?还是一行120个变量?
最好是对数据结构给出一些说明,怎么排列的,建议用dataex(ssc install dataex)命令贴出示例数据。
一行单值可以尝试以下代码,其他情况要根据需要修改。
复制代码
二维码

扫码加我 拉你入群

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

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

2020-11-11 15:41:24
DΘstinyじò 发表于 2020-11-11 13:09
不知道你的这个数据是怎么排列的,是值为一个变量,下标参数为三个变量?还是一行120个变量?
最好是对数 ...
我现有的变量是一共有20*6*16个:
  • N1a1_1 N2a1_1 N3a1_1 N4a1_1 N5a1_1 N6a1_1 N7a1_1 N8a1_1 N9a1_1 N10a1_1 N11a1_1 N12a1_1 N13a1_1 N14a1_1 N15a1_1 N16a1_1 N17a1_1 N18a1_1 N19a1_1 N20a1_1
  • N1a2_1 N2a2_1 N3a2_1 N4a2_1 N5a2_1 N6a2_1 N7a2_1 N8a2_1 N9a2_1 N10a2_1 N11a2_1 N12a2_1 N13a2_1 N14a2_1 N15a2_1 N16a2_1 N17a2_1 N18a2_1 N19a2_1 N20a2_1
  • .......
  • N1a6_1 N2a6_1 N3a6_1 N4a6_1 N5a6_1 N6a6_1 N7a6_1 N8a6_1 N9a6_1 N10a6_1 N11a6_1 N12a6_1 N13a6_1 N14a6_1 N15a6_1 N16a6_1 N17a6_1 N18a6_1 N19a6_1 N20a6_1
  • N1a1_2 N2a1_2 N3a1_2 N4a1_2 N5a1_2 N6a1_2 N7a1_2 N8a1_2 N9a1_2 N10a1_2 N11a1_2 N12a1_2 N13a1_2 N14a1_2 N15a1_2 N16a1_2 N17a1_2 N18a1_2 N19a1_2 N20a1_2
  • N1a2_2 N2a2_2 N3a2_2 N4a2_2 N5a2_2 N6a2_2 N7a2_2 N8a2_2 N9a2_2 N10a2_2 N11a2_2 N12a2_2 N13a2_2 N14a2_2 N15a2_2 N16a2_2 N17a2_2 N18a2_2 N19a2_2 N20a2_2
  • .........
  • N1a5_16 N2a5_16 N3a5_16 N4a5_16 N5a5_16 N6a5_16 N7a5_16 N8a5_16 N9a5_16 N10a5_16 N11a5_16 N12a5_16 N13a5_16 N14a5_16 N15a5_16 N16a5_16 N17a5_16 N18a5_16 N19a5_16 N20a5_16
  • N1a6_16 N2a6_16 N3a6_16 N4a6_16 N5a6_16 N6a6_16 N7a6_16 N8a6_16 N9a6_16 N10a6_16 N11a6_16 N12a6_16 N13a6_16 N14a6_16 N15a6_16 N16a6_16 N17a6_16 N18a6_16 N19a6_16 N20a6_16


我想得到的是20*6=120个变量:
N1a1=N1a1_1+N1a1_2+.....+N1a1_16
N2a1=N2a1_1+N2a1_2+.....+N2a1_16
...
N20a1=N20a1_1+N20a1_2+.....+N20a1_16N1a2=N1a2_1+N2a2_2+.....+N20a2_16
N2a2=N2a2_1+N2a2_2+.....+N2a2_16
...
N20a2=N20a2_1+N20a2_2+.....+N20a2_16
...
N20a6=N20a6_1+N20a6_2+.....+N20a6_16

dataex命令跑不出来
我截了部分图您可以看一下



附件列表
1111.jpg

原图尺寸 527.57 KB

1111.jpg

二维码

扫码加我 拉你入群

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

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

2020-11-11 17:50:30
DΘstinyじò 发表于 2020-11-11 13:09
不知道你的这个数据是怎么排列的,是值为一个变量,下标参数为三个变量?还是一行120个变量?
最好是对数 ...
谢谢您的帮助,受您的启发我想出来咋做了已经!我的命令如下:

forvalues i=1/6 {
       forvalues j=1/20 {
                        gen N113_`j'a`i'=N`j'a`i'_1+N`j'a`i'_2+N`j'a`i'_3+N`j'a`i'_4+N`j'a`i'_5+N`j'a`i'_6+N`j'a`i'_7+N`j'a`i'_8+N`j'a`i'_9+N`j'a`i'_10+N`j'a`i'_11+N`j'a`i'_12+N`j'a`i'_13+N`j'a`i'_14+N`j'a`i'_15+N`j'a`i'_16
                }
     }
二维码

扫码加我 拉你入群

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

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

2020-11-11 22:21:05
Miuka。 发表于 2020-11-11 17:50
谢谢您的帮助,受您的启发我想出来咋做了已经!我的命令如下:

forvalues i=1/6 {
看了你的数据结构,其实之前的发的代码也可行,但是有点繁琐,结合你最初的代码,可以尝试以下代码:
复制代码
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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