楼主: clu43
4258 8

数据列转行的问题 [推广有奖]

  • 0关注
  • 0粉丝

VIP

本科生

2%

还不是VIP/贵宾

-

威望
0
论坛币
541 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
364 点
帖子
36
精华
0
在线时间
88 小时
注册时间
2009-8-28
最后登录
2018-11-15

楼主
clu43 发表于 2010-2-11 05:45:14 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
求教怎样将 每隔3列的数据转换为行
比如
         a  b  c d e f g h i
  如何换为
         a  b  c
         d  e  f
         g  h  i
thanks a lot!

另外 请问用什么什么语句能将 a d g 定义为同一个变量名呢 因为  尝试rename时发现不能同时改变。 不知需用哪个语句可改! 非常感谢!
二维码

扫码加我 拉你入群

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

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

关键词:thanks rename Thank 数据转换 什么什么 数据 转行

回帖推荐

sungmoo 发表于9楼  查看完整内容

若你的变量名是a1 a2 a3 a11 a12 a13 a21 a22 a23……(即无首0),则可以省略几步。

sungmoo 发表于8楼  查看完整内容

*在do-file中run以下(设你的原始数据库名为d.dta,它在默认目录中): clear tempfile a b loc w1 gpa loc w2 income loc w3 education g x=. save `a',replace forv j=1/3{ use d,clear keep a*`j' g x=_n loc i=0 foreach v of var a*{ loc i=`i'+1 ren `v' `w`j''`i' } reshape long `w`j'', i(x) save `b',replace use `a',clear mer using `b' drop _merge save `a', ...

dxystata 发表于3楼  查看完整内容

stack a b c d e f g h i,into(x y z)

本帖被以下文库推荐

沙发
7626889 发表于 2010-2-11 06:31:08
用循环语句,步长=3。
用数组定义adg

藤椅
dxystata 发表于 2010-2-11 07:45:39
stack  a  b  c d e f g h i,into(x y z)

板凳
sungmoo 发表于 2010-2-11 08:57:08
clu43 发表于 2010-2-11 05:45 比如a  b  c d e f g h i
你的原始数据是什么类型的?

报纸
clu43 发表于 2010-2-11 11:05:31
4# sungmoo

a001 a002 a003  a011 a012 a013.....
1          2      3          4       5      6     ....
  6         5      4           3      2     1  ......
我想把a001 a011 a021 等以1结尾的定义为gpa
        把a002 a012 a022 等以2结尾的定义为 income
        把a003 a013 a023 等以3结尾的定位为 education  均为数值变量

变成 gpa income education
          1     2             3
           4     5            6
           6     5            4
           3      2            1

急着整个数据做项目 希望大伙帮忙帮我写下具体的command 非常感谢!

地板
clu43 发表于 2010-2-11 11:07:57
2# 7626889

感谢回复 能麻烦你把commond写给我吗 非常感谢!
这是原数据形式

a001 a002 a003  a011 a012 a013.....
1          2      3          4       5      6     ....
  6         5      4           3      2     1  ......
我想把a001 a011 a021 等以1结尾的定义为gpa
        把a002 a012 a022 等以2结尾的定义为 income
        把a003 a013 a023 等以3结尾的定位为 education  均为数值变量
变成 gpa income education
          1     2             3
           4     5            6
           6     5            4
           3      2            1
本文来自: 人大经济论坛 详细出处参考:http://www.pinggu.org/bbs/viewthread.php?tid=713400&page=1&from^^uid=1188360

7
clu43 发表于 2010-2-11 11:09:36
3# dxystata

感谢版主回复 能麻烦你把command写给我吗 非常感谢!

这是原数据形式
a001 a002 a003  a011 a012 a013.....
1          2      3          4       5      6     ....
  6         5      4           3      2     1  ......
我想把a001 a011 a021 等以1结尾的定义为gpa
        把a002 a012 a022 等以2结尾的定义为 income
        把a003 a013 a023 等以3结尾的定位为 education  均为数值变量
变成 gpa income education
          1     2             3
           4     5            6
           6     5            4
           3      2            1

8
sungmoo 发表于 2010-2-11 12:13:08
*在do-file中run以下(设你的原始数据库名为d.dta,它在默认目录中):
clear
tempfile a b
loc w1 gpa
loc w2 income
loc w3 education
g x=.
save `a',replace
forv j=1/3{
  use d,clear
  keep a*`j'
  g x=_n
  loc i=0
  foreach v of var a*{
    loc i=`i'+1
    ren `v' `w`j''`i'
  }
  reshape long `w`j'', i(x)
  save `b',replace
  use `a',clear
  mer using `b'
  drop _merge
  save `a',replace
}

9
sungmoo 发表于 2010-2-11 12:17:41
若你的变量名是a1 a2 a3  a11 a12 a13 a21 a22 a23……(即无首0),则可以省略几步。

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-1-10 21:03