楼主: xfei1007
6503 14

[求助]请SAS高手帮忙解决读Excel表格问题 [推广有奖]

  • 0关注
  • 0粉丝

本科生

0%

还不是VIP/贵宾

-

威望
0
论坛币
61 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
764 点
帖子
56
精华
0
在线时间
21 小时
注册时间
2007-9-18
最后登录
2019-1-24

楼主
xfei1007 发表于 2008-3-12 19:07:00 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
利用SAS读入Excel Spreadsheet时,如果一个变量的前八个数据缺失的话,SAS会自动将该变量定义成Character Style,所以,如果这个变量是数值型的话,这个变量的所有值都不能读如了,谁知道用SAS写段程序能自动修改这种垃圾设定呢?谢谢!
二维码

扫码加我 拉你入群

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

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

关键词:excel表格 Excel表 EXCEL xcel exce Excel Style 程序

沙发
wxq1638 发表于 2008-3-12 19:19:00

点中SAS死穴 搓一把

<p></p> 197735.rar (287.45 KB) 本附件包括:
  • 缺失前8个数字的xls倒入.doc
<br/>

[此贴子已经被作者于2008-3-12 20:03:03编辑过]

藤椅
xfei1007 发表于 2008-3-12 20:08:00
谢谢!

板凳
wolfcrying 发表于 2008-3-13 13:47:00
<p>楼上的方法不可去,如果代码反复执行的话,不可能重复进行操作.</p><p>其实这个问题简单,SAS读入excel数据时,默认用每列的前八个格子的内容去"猜"字段的类型和长度,如果都为空,则判断为字符型,长度为一.</p><p>要正确读入,那么就要改变默认的8,具体是在proc import过程步里加入语句.</p><p>guessingrow=10000(或足够大的数字,当然也要考虑机器性能)</p><p></p><p>其实这些内容help豆油,关键是要多学习</p><p></p>

[此贴子已经被作者于2008-3-13 13:48:27编辑过]

报纸
wxq1638 发表于 2008-3-13 14:00:00
请说英文的狼先生举实例说明

[此贴子已经被作者于2008-3-13 14:01:03编辑过]

地板
wolfcrying 发表于 2008-3-13 17:03:00
<p>proc import datafile="d:\abc\def\data.xls" dbms=excel </p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out=datasetname replace;</p><p>&nbsp;guessingrows=10000;</p><p>run;</p>

7
wxq1638 发表于 2008-3-13 19:05:00
<p>狼先生,你搞的那个guessingrows有问题。</p><p>请问,你有没有数组方面的详细资料,以及iml函数大全方面的内容。</p><p>请发到这个邮箱里来:<a href="mailto:wxq1638@yahoo.com.cn">wxq1638@yahoo.com.cn</a></p><p>兄弟急需呀。</p><p>看到本贴的兄弟都帮帮忙啊</p><p>先在此拜谢牛人了!</p>

8
wolfcrying 发表于 2008-3-13 19:19:00
<p>不好意思,guessingrows 是用于.CSV或.txt文件,</p><p>如果用在excel里,应该用是 搭配 mixed=yes;使用。</p><p>不过我不建议直接从excel里导入数据,会出现很多意想不到的错误,还是用.TXT或.CSV文件格式比较好</p>

9
wxq1638 发表于 2008-3-13 19:24:00
仍然有问题

10
wolfcrying 发表于 2008-3-14 00:22:00
<p>没问题啊:</p><p>proc import datafile="d:\abc\def\data.xls" dbms=excel <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out=datasetname replace;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mixed=yes;<br/>run;</p><p>只是mixed=yes会把所有的变量都当成字符型变量来处理。</p><p>如果要定期反复运行程序,我建议还是先把xls文件转换成.csv文件后再交给SAS出来,excel里有很多控制字符,不小心的话SAS很容易读错的。</p>

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-21 20:41