楼主: yw1126
8727 19

[编程问题求助] 如何用stcmd批量转换excel成dta文件 [推广有奖]

  • 2关注
  • 4粉丝

已卖:372份资源

讲师

26%

还不是VIP/贵宾

-

威望
0
论坛币
931 个
通用积分
45.2479
学术水平
11 点
热心指数
11 点
信用等级
9 点
经验
1302 点
帖子
193
精华
0
在线时间
698 小时
注册时间
2011-5-28
最后登录
2024-7-27

楼主
yw1126 在职认证  发表于 2016-9-19 22:09:46 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
根据前人的智慧,我编的下面的程序,可是结果是不断的出现StatTransfer的界面,让我手动转换。

cd D:\stata13\ado\My_paper2016\ratsjieguo  //数据所在的文件夹
global StatTransfer_path `"D:\program files\StatTransfer9\st32w.exe"'

forvalues i=1/2 {
  stcmd `i'a.xls `i't.dta /y
}


如果我把第二行改成global StatTransfer_path `"D:\program files\StatTransfer9"',stata不会报错,但也不给我输出结果。
请问,我这里是哪里错了

二维码

扫码加我 拉你入群

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

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

关键词:EXCEL DTA文件 xcel exce cmd excel files stata 程序

沙发
夏目贵志 发表于 2016-9-21 06:39:09
为什么不能用stata直接导入?

藤椅
yw1126 在职认证  发表于 2016-9-21 09:12:51
夏目贵志 发表于 2016-9-21 06:39
为什么不能用stata直接导入?
因为我有2000多个excel

板凳
夏目贵志 发表于 2016-9-21 09:39:34
yw1126 发表于 2016-9-21 09:12
因为我有2000多个excel
我并不是在说为什么要用循环,我是在问为什么非要用stcmd这个命令,而不能用import excel
help import excel

报纸
yw1126 在职认证  发表于 2016-9-21 10:54:41
夏目贵志 发表于 2016-9-21 09:39
我并不是在说为什么要用循环,我是在问为什么非要用stcmd这个命令,而不能用import excel
help import e ...
试了一下,也不行。。。。想用stcmd主要是因为有stattransfer软件,而且这个方法也有人用
import excel 1a.xls
file 1a.xls could not be loaded

地板
夏目贵志 发表于 2016-9-21 12:14:53
yw1126 发表于 2016-9-21 10:54
试了一下,也不行。。。。想用stcmd主要是因为有stattransfer软件,而且这个方法也有人用
import excel  ...
import excel有些需要根据你要导入的文件格式内容不同相应设置的选项的。建议先用对话框手动导入一个,然后就可以用生成的命令写循环了。

7
黃河泉 在职认证  发表于 2016-9-21 12:29:25
yw1126 发表于 2016-9-21 09:12
因为我有2000多个excel
就如同夏目贵志所说,你可考虑直接将资料叫进 Stata,例子为:
  1. forvalue i=1/9 {
  2.   import excel "excel\CG_Director\CG_Director`i'.xls", firstrow clear  
  3.   save "CG_Director`i'.dta", replace
  4. }

  5. use "CG_Director1.dta", clear
  6. forvalue i=2/9 {
  7.   append using "CG_Director`i'.dta"  
  8. }
复制代码

8
yw1126 在职认证  发表于 2016-9-23 20:04:12
黃河泉 发表于 2016-9-21 12:29
就如同夏目贵志所说,你可考虑直接将资料叫进 Stata,例子为:
嗯啊,这是个好办法,不过是不是excel的文件名里不能有字母啊,我试了下,像1a.xls这样的读不进来

9
yw1126 在职认证  发表于 2016-9-23 22:31:45
yw1126 发表于 2016-9-23 20:04
嗯啊,这是个好办法,不过是不是excel的文件名里不能有字母啊,我试了下,像1a.xls这样的读不进来
. do "C:\Users\ADMINI~1\AppData\Local\Temp\STD00000000.tmp"

.   forvalue i=1/9 {
  2.   import excel "D:\stata13\ado\My_paper2016\ratsjieguo\A`i'.xls", firstrow clear
>  
  3.   save "A`i'.dta", replace
  4. }
file D:\stata13\ado\My_paper2016\ratsjieguo\A1.xls could not be loaded
r(603);


就是这样的。我把excel的名字改成1a ,a1,A1都没用,非得字母都不加。我看你的程序里有字母的,好奇怪为啥我的不行

10
yw1126 在职认证  发表于 2016-9-23 22:57:42
yw1126 发表于 2016-9-23 22:31
. do "C:\Users\ADMINI~1\AppData\Local\Temp\STD00000000.tmp"

.   forvalue i=1/9 {
我找出问题了,因为我的excel里有#NA,因为计算有滞后期。而且excel的文件命名只能字母在前面,大小写都可以。现在我得想办法怎样一次性把多个excel里的第二行去掉不过,还是谢谢啦~~~

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

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