楼主: jacosis
14637 13

[求助]请问Stata的Reshape命令在多个变量时候怎么用? [推广有奖]

  • 0关注
  • 3粉丝

VIP

讲师

8%

还不是VIP/贵宾

-

威望
0
论坛币
502 个
通用积分
1.0007
学术水平
15 点
热心指数
17 点
信用等级
11 点
经验
2503 点
帖子
295
精华
0
在线时间
67 小时
注册时间
2008-8-23
最后登录
2018-3-19

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币

+-----------------------------------------+
no     group   age      sex   bp0   bp1
-----------------------------------------
1.   1   placebo    35     Male   139   128
2.   2   placebo    44   Female   148   131
3.   3   placebo    50   Female   139   122
4.   4   placebo    48     Male   148   126
5.   5       low    60     Male   135   123
-----------------------------------------
6.   6       low    38     Male   150   130
7.   7       low    31   Female   144   130
8.   8       low    47   Female   150   135
9.   9      high    33   Female   151   137
10.  10      high    21   Female   151   133
-----------------------------------------
11.  11      high    66     Male   153   132
12.  12      high    53   Female   142   126
+-----------------------------------------+

对于上面的数据怎么用reshape命令来做?现在需要关注的变量是bp0和bp1,书上给的方法不行呀。

谢谢。

二维码

扫码加我 拉你入群

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

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

关键词:reshape Shape Stata 多个变量 tata 变量 Stata 命令 reshape

沙发
liuxb 发表于 2008-9-10 11:52:00 |只看作者 |坛友微信交流群
你能否讲清楚些!例如你想将上述数据转换成什么样的排列方式。

使用道具

藤椅
jacosis 发表于 2008-9-10 14:13:00 |只看作者 |坛友微信交流群

        no       time     group       age       sex        bp 
  1.        1          0   placebo        35      male       139  
  2.        1          1   placebo        35      male       128  
  3.        2          0   placebo        44    female       148  
  4.        2          1   placebo        44    female       131  
  5.        3          0   placebo        50    female       139  
  6.        3          1   placebo        50    female       122  
  7.        4          0   placebo        48      male       148  
  8.        4          1   placebo        48      male       126  
  9.        5          0       low        60      male       135  
 10.        5          1       low        60      male       123  
 11.        6          0       low        38      male       150  
 12.        6          1       low        38      male       130  
 13.        7          0       low        31    female       144  
 14.        7          1       low        31    female       130  
 15.        8          0       low        47    female       150  
 16.        8          1       low        47    female       135  
 17.        9          0      high        33      male       151  
 18.        9          1      high        33      male       137  
 19.       10          0      high        21    female       151  

 20.       10          1      high        21    female       133
 21.       11          0      high        66      male       153
 22.       11          1      high        66      male       132
 23.       12          0      high        53    female       142
 24.       12          1      high        53    female       126

如上所示。

使用道具

板凳
eblog 发表于 2008-9-10 14:17:00 |只看作者 |坛友微信交流群
试试这个命令:
reshape long bp,i(no) j(time)

使用道具

报纸
jacosis 发表于 2008-9-10 14:23:00 |只看作者 |坛友微信交流群

将bp0和bp1用bp表示,其中用time(0,1)来区分bp0和bp1.

使用道具

地板
jacosis 发表于 2008-9-10 14:30:00 |只看作者 |坛友微信交流群
好了,谢谢eblog的大力相助,万分佩服。

使用道具

7
eblog 发表于 2008-9-10 14:35:00 |只看作者 |坛友微信交流群
说实话,这是Stata最基础的命令

[此贴子已经被作者于2008-9-10 14:35:39编辑过]

使用道具

8
蓝色 发表于 2008-9-11 07:47:00 |只看作者 |坛友微信交流群

所以为什么要学stata,你可以看到只需要一个很简单的命令就可以解决上述的问题。

reshape在stata的那本data management中讲的更详细。

使用道具

9
syyw 发表于 2010-8-17 10:30:38 |只看作者 |坛友微信交流群
6# jacosis
我是初学者,我有个疑问:要整合的变量名称必须是a(i)形式的吗?例如文中的bp0,bp1  用reshape long (bp), long后面()的新变量名称必须是bp吗?i() j(),j后面的变量名称是随便可以取的吧。 即原来的a1 a2 a3用reshape long 命令之后生成了 a(用来存a1 a2 a3的值) 新变量a的名称是固定的和前面一致的,另外一个变量用来存放1、2、3 名字可以随便取(文中为year)。 我的理解有错误吗?
    如果原文中的变量名是a b 而不是bp0 bp1是不是就不能用reshape long了? a b比须变成a(i)形式的比如bp0 bp1?对吗?请各位指点

使用道具

10
城市生活 发表于 2010-8-18 19:05:19 |只看作者 |坛友微信交流群
你的理解是对的,i()是数据中原有变量作为索引的,j()是转置后新生成的,  至于转置中涉及的变量名问题,下面练习可能有帮助    ---------------------------------------------------------------------------
    Setup
        . webuse reshape5, clear    List the data
        . list    Convert the data from long-long form to wide-wide form (two j variables)
        . reshape wide @inc, i(hid year) j(sex) string
        . reshape wide minc finc, i(hid) j(year)    List the result
        . list    Convert the data back from wide-wide form to long-long form
        . reshape long minc finc, i(hid) j(year)
        . reshape long @inc, i(hid year) j(sex) string    List the result
        . list

使用道具

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

本版微信群
加好友,备注jltj
拉您入交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-28 19:18