楼主: xzyd00
5787 6

[数据管理求助] stata数据行列转换 [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

初中生

76%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
112 点
帖子
9
精华
0
在线时间
16 小时
注册时间
2015-8-20
最后登录
2019-6-27

楼主
xzyd00 发表于 2019-4-16 15:54:38 |AI写论文
10论坛币
我有一个电力生产值表,如何才能将横向的每日30分交易变量:"tr1,tr2.....tr48"纵向放置到指定变量:“date”每一天下面? {~%FZ9PS`FBE~]P3$U~2J.png

最佳答案

蓝色 查看完整内容

看 rehape 命令里面的例子 reshape long
关键词:电力生产 生产值

沙发
蓝色 发表于 2019-4-16 15:54:39
看  rehape 命令里面的例子  
reshape  long

藤椅
蓝色 发表于 2019-4-16 16:09:06
看  rehape 命令里面的例子

板凳
黃河泉 在职认证  发表于 2019-4-16 16:34:43
你若要问程序,永远附上相关资料;若附上资料,永远用 dataex 印出资料。
1.        先 ssc install dataex (并见说明),将原始 Stata 资料中具有”代表性”的一部分资料列出,以供有意回答者实验之用,并能提供具体操作指令。
2.        请参考说明 https://bbs.pinggu.org/thread-5048204-1-1.html

报纸
xzyd00 发表于 2019-4-16 16:36:34

我这个错在哪里

地板
xzyd00 发表于 2019-4-16 16:44:06
为什么我写的code :reshape long tr, i(date) j(DMY) 无法运行

7
赵安豆 发表于 2024-11-3 13:11:23
在Stata中,你可以使用`reshape`命令或者更现代一些的`wide2long`和`melt`命令来将数据从宽格式(wide format)转换为长格式(long format)。对于你的情况,看起来像是一个时间序列问题,可以考虑使用`reshape`或`melt`。

### 方法一:使用 `reshape`

1. 首先确保你的数据按照日期排序。
2. 然后你可以使用`reshape long`命令将交易变量从宽格式转换为长格式。

但是,由于你有48个交易时间点,手动列出所有的交易变量会非常繁琐。我们可以用通配符来解决这个问题:

```stata
* 假设你的数据集已经打开,并且按照日期排序。
reshape long tr?, i(date) j(time)
```

这里`tr?`是一个通配符,表示从`tr1`到`tr48`的所有变量。`i(date)`意味着我们将以`date`作为id变量,而`j(time)`则会创建一个新变量`time`来代表交易时间点。

### 方法二:使用 `melt`

如果你更喜欢更现代的方法,可以尝试使用`melt`命令:

```stata
* 先确保你没有其他不想转换的变量名以tr开头。
melt tr*, idvars(date)
```

这将把所有名称以`tr`开头的变量熔化为一个新的长格式数据集。

### 方法三:使用 `wide2long`

如果你想更明确地指定哪些是宽格式中的id和时间变量,你可以用`wide2long`命令:

```stata
* 假设你的交易变量从tr1到tr48,并且你有一个日期变量叫做date。
wide2long tr?, i(date) j(time)
```

### 注意事项

- 确保在进行转换前,数据按照需要的顺序排序和格式化,这样`reshape`, `melt`, 或者`wide2long`才能正确地执行操作。
- 检查命令后输出的数据,确保没有错误。

希望这可以帮助你解决问题!如果你还有其他关于Stata的问题,请随时提问。

此文本由CAIE学术大模型生成,添加下方二维码,优先体验功能试用



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

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