全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
7588 4
2013-08-05
在c:\file下我同时放了data_1.csv,data_2.csv,data_3.csv三个文件,文件第一行没有名称
文件的格式为wide形式的,即
1 2
3 4
5 6
7 8
我想操作把wide形式变为long形式,即把两列堆积为一列
1
3
5
7
2
4
6
8
然后分别保存为data_1.dta,data_2.dta,data_3.dta
下面我写了一段代码,但是不知道怎么修改

cd c:\file
local myfilelist   : dir . files "*.csv"
foreach filename of local myfilelist {
  insheet using `"`filename'"',clear
  g n=_n
  reshape long v, i(n) j(i)
  sort i n
  drop n
  sort i

  rename v var    /*因为我的csv数据都是没有行名的,所以导入到stata时都是自动命名为var,我这句想在保存前更名为   
  var_1,var_2,var_3形式,不知道如何操作*/
  
save `filename'.dta, replace
}

请老师指导


二维码

扫码加我 拉你入群

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

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

全部回复
2013-8-5 15:28:19
cd c:\file
local myfilelist   : dir . files "*.csv"
foreach filename of local myfilelist {
  insheet using `"`filename'"', clear
  g n=_n
  reshape long v, i(n) j(i)
  sort i n
  drop n
  sort i

local cnt = substr(`"`filename'"', 6, 1)
rename v var_`cnt'

local filenm = subinstr(`"`filename'"', ".csv", ".dta", .)
save `"`filenm'"', replace
}


二维码

扫码加我 拉你入群

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

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

2013-8-5 16:07:09
voodoo 发表于 2013-8-5 15:28
cd c:\file
local myfilelist   : dir . files "*.csv"
foreach filename of local myfilelist {
谢谢voodoo老师
二维码

扫码加我 拉你入群

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

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

2013-8-5 19:09:35
voodoo 发表于 2013-8-5 15:28
cd c:\file
local myfilelist   : dir . files "*.csv"
foreach filename of local myfilelist {
voodoo老师,本来还想请教您问题的,现在已经自己解决了,打扰您了,
祝好。
二维码

扫码加我 拉你入群

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

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

2023-2-22 09:49:06
voodoo 发表于 2013-8-5 15:28
cd c:\file
local myfilelist   : dir . files "*.csv"
foreach filename of local myfilelist {
您好我也有个问题想要问一下,我在处理三个文件之后,想把处理好的文件保存在另外一个路径下,我用了暂元符号,但是保存的时候一直提示invalid "`"。命令如下:
global dir2 "D:process"
foreach file in 高管团队断裂带1 高管团队断裂带2 高管任期1 高管任期2{
import excel using `file',firstrow case(lower) clear
labone,n(1)
drop in 1/2
destring _all,replace
save $dir2\`file',replace
}
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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