楼主: chase_dream
18341 18

请教:STATA变量赋值 [推广有奖]

  • 1关注
  • 1粉丝

金山独霸

已卖:3895份资源

博士生

34%

还不是VIP/贵宾

-

威望
0
论坛币
893250 个
通用积分
0.8440
学术水平
7 点
热心指数
7 点
信用等级
5 点
经验
3067 点
帖子
253
精华
1
在线时间
86 小时
注册时间
2006-4-1
最后登录
2019-12-25

楼主
chase_dream 发表于 2011-8-12 19:52:47 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
举例如下数据结构, 其中n大于1000。
       A              B           ...
1    1.2            .
2    1.3            .
3    1.2            .
...
n    1.5            .
1     .               1.7
2     .               1.3
3     .               1.9
...
n     .               2.4

现在想把B变量的第一个1-n行赋值为第二个1-n行。
如果不使用矩阵,有什么办法吗?多谢
二维码

扫码加我 拉你入群

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

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

关键词:Stata tata 数据结构 大于1 不使用

三人行,必有我师

沙发
蓝色 发表于 2011-8-12 21:05:27
没看明白说的什么
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
chase_dream + 1 + 1 + 1 热心帮助其他会员

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

藤椅
h3327156 发表于 2011-8-12 22:29:15
我也不看地太明白。
所以不清楚以下的例子演练是不是您要的。
参考看看。

input A B
1.2 .
1.3 .
1.2 .
1.5 .
. 1.7
. 1.3
. 1.9
. 2.4
end

replace B=B[(_N/2)+_n] if B==.
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
chase_dream + 1 + 1 + 1 热心帮助其他会员

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

板凳
chase_dream 发表于 2011-8-14 04:50:07
多谢楼上两位。抱歉我再重复一下(我已经找到一个极其土的办法,但还是希望诸位指点一下)。数据很大,比如每个变量有100000以上观察值,因此希望用矩阵存储是不可能的。
变量的值如下(n>10000):
       A              B           ...
1    1.2            .
2    1.3            .
3    1.2            .
...
n    1.5            .
1     .               1.7
2     .               1.3
3     .               1.9
...
n     .               2.4

我想把它变成
       A              B           ...
1    1.2            1.7
2    1.3            1.3
3    1.2            1.9
...
n    1.5            2.4
1     .               1.7
2     .               1.3
3     .               1.9
...
n     .               2.4
因为有几百个变量,不可能用input.

多谢
三人行,必有我师

报纸
h3327156 发表于 2011-8-14 06:13:25
chase_dream 发表于 2011-8-14 04:50
多谢楼上两位。抱歉我再重复一下(我已经找到一个极其土的办法,但还是希望诸位指点一下)。数据很大,比如 ...
那個input是舉例給您看,不是要您真的那樣做!
您說您有幾百個變量?
您可不可以把變量C也列一下看是啥狀況,否則有時真的不太明白您在說什麼。

假設有變量A 變量B1…  一直到B1000
把先前給您的指令試著加個loop看看是不是您要的。【參考看看,請替換成您的變量】

foreach v of varlist B1-B1000 {
  replace `v'=`v'[(_N/2)+_n] if `v'==.      
}  

已有 1 人评分学术水平 热心指数 信用等级 收起 理由
chase_dream + 1 + 1 + 1 热心帮助其他会员

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

地板
chase_dream 发表于 2011-8-15 00:33:51
       A              B           C             D...
1    A1            .             .              .
2    A2            .             .              .
3    A3            .             .              .
...
n    An            .             .              .
1     .               B1         .              .
2     .               B2         .              .
3     .               B3         .              .
...
n     .               B4          .              .
1     .                .           C1           .
2     .                .           C2           .
3     .                .           C3           .
...
4     .                .           Cn           .
...
...
...

我想把它变成
      A              B            C             D ...
1    A1           B1          C1              .
2    A2           B2          C2              .
3    A3           B3          C3              .
...
n    An           Bn          Cn              .


多谢!!!!
三人行,必有我师

7
h3327156 发表于 2011-8-15 01:25:28
想变成的部份请在刻画多一点,
B那变量那个部份
C1对过去  在B变量那一行 请问是missing value .吗?

另外 不懂 原表达怎会有B4? 而且对过去是在n?

虽说可以体谅表达与刻画意念是颇复杂,
但,真的有时会造成个人理解上的困难…

待我真的理解后,我才有能力编程,谢谢

8
glacierccer 发表于 2011-8-15 10:50:15
楼主,你试试下面这段程序得到的结果是不是你想要的:
replace B=B[_n+N] if _n<=N
replace C=C[_n+N*2] if _n<=N
replace D=D[_n+N*3] if _n<=N
你把N换成具体数值(就是你列子中的“n"),就可以运行了.
然后删除不需要的观察值:
drop if _n>N


已有 1 人评分学术水平 热心指数 信用等级 收起 理由
chase_dream + 1 + 1 + 1 热心帮助其他会员

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

9
samyy77 发表于 2011-8-16 05:43:02
thank you so much
can any body help me to download stata 12

10
chase_dream 发表于 2011-8-17 20:53:03
To h3327156: 多谢你的热心帮助。那个B4是笔误,应该是Bn。抱歉实在不好表达。
To  glacierccer:谢谢,谢谢。事实上我就是这么做的,但是我郁闷的是Stata拿到除了矩阵,就没有办法像C里面类似的指针或者下标可以引用?
三人行,必有我师

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

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