楼主: newsta
8886 7

[求助]那位高手知道从Excel中导入SAS的数据为什么会缺失? [推广有奖]

  • 2关注
  • 1粉丝

VIP

已卖:46份资源

讲师

11%

还不是VIP/贵宾

-

威望
0
论坛币
6629 个
通用积分
25.3300
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
5132 点
帖子
183
精华
0
在线时间
642 小时
注册时间
2007-4-13
最后登录
2025-11-10

楼主
newsta 发表于 2007-8-13 22:53:00 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币

我经常遇到从Excel导入数据到SAS,然后就有部分数据丢失,显示"."

请问有谁知道是什么原因??

谢谢!

二维码

扫码加我 拉你入群

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

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

关键词:EXCEL exce xcel sas的 cel 数据 EXCEL 高手 SAS 缺失

回帖推荐

rw_gmat 发表于6楼  查看完整内容

I met the same problem before. After I saved the XLS file into CSV file, everything became OK. So it is the format problem. Try to save EXCEL file into CSV or TXT file, then import.

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

我遇到过同样的问题,这主要是因为在读入数据的时候,SAS默认采用的是best.w格式,即自行判断采用最优格式,但是只有先定义变量和格式后才能保存值,所以只能取决于第一条记录。 我们假设excel表格中的数据如下: 会计科目 金额 同业存款 10000 某某二级贷款科目很长的那种 20000000 我们将它导入,跳过第一行,可能科目那个字段的长度就会不够用的, 很笨的解决方法,用一行你认为足够长的的字符将字段长度撑起来,导入数据 ...

vincentsg 发表于2楼  查看完整内容

The format of the lost data is not consistent with that of the unlost data. In excel you could format the columns where you think data might get lost.

本帖被以下文库推荐

沙发
vincentsg 发表于 2007-8-14 02:58:00

The format of the lost data is not consistent with that of the unlost data.

In excel you could format the columns where you think data might get lost.

已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 10 精彩帖子

总评分: 经验 + 3  论坛币 + 10   查看全部评分

藤椅
cfacfo 发表于 2007-8-15 14:16:00

我遇到过同样的问题,这主要是因为在读入数据的时候,SAS默认采用的是best.w格式,即自行判断采用最优格式,但是只有先定义变量和格式后才能保存值,所以只能取决于第一条记录。

我们假设excel表格中的数据如下:

会计科目 金额

同业存款 10000

某某二级贷款科目很长的那种 20000000

我们将它导入,跳过第一行,可能科目那个字段的长度就会不够用的,

很笨的解决方法,用一行你认为足够长的的字符将字段长度撑起来,导入数据库后删除第一条记录

例如:改为

会计科目 金额

恨恨恨恨恨恨恨恨恨恨恨恨恨恨长 9999999999 (注意:就是这一行)

同业存款 10000

某某二级贷款科目很长的那种 20000000

当然,或许有更好的更科学的方法,我找了很多资料都没有找到,proc import里面也没有介绍,希望大家莫笑

如果你能确定单元格范围,可以参考下面:

proc import
datafile="d:\xls\xxxxxx.xls"
out=work.TEMPXB&p&No
(rename=(
F1=NO
F2=LOAN
F3=AC_LOAN
))
dbms=excel2002 replace;
range='C26:K43';/*就在这里确定范围*/
GETNAMES=NO;
RUN;

如果还是不行,不妨将你的xls发上来(去掉国家机密:))

已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 10 精彩帖子

总评分: 经验 + 3  论坛币 + 10   查看全部评分

板凳
newsta 发表于 2007-8-15 22:04:00

我的数据就是象下面这样:

Lev customer cusnum country
2 a 1234 usa
2 b 4321 france
2 c 2345 usa
2 d 5432 china
2 e 3456 darmank
3 f 6543 germany
3 g 4567 usa
3 h 7654 china
3 i 5678 england
4 j 8765 france
4 k 6789 china
4 l 9876 usa
4 m 7890 germany
5 n 0987 france
5 o 8901 france
5 p 1098 france
5 q 9012 usa
5 r 2109 usa

我遇到问题的数据有近千条记录,因为是公司的数据,不在我私人的电脑上面,所以模拟出上面的表

在我导入时第一列有部分缺失,而其他三列都完整

可能我的水平有限,楼上同学的建议我还是不太懂,请指教!!

谢谢!

[此贴子已经被作者于2007-8-15 22:06:42编辑过]

报纸
cfacfo 发表于 2007-8-15 22:59:00

请问你指的缺失是数据彻底为空还是不完整?

例如 “Mr.Micahel Boton”只显示为"Mr.Micahel"?还是什么也没有?

如果是从变量长度不够,按我说的方法应该可行

另外问一下,你的第一列的数据最多占用多少个字节?是字符型还是数值型呢?

地板
rw_gmat 发表于 2007-8-16 10:38:00
I met the same problem before. After I saved the XLS file into CSV file, everything became OK. So it is the format problem. Try to save EXCEL file into CSV or TXT file, then import.
已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 10 精彩帖子

总评分: 经验 + 3  论坛币 + 10   查看全部评分

7
newsta 发表于 2007-8-16 20:32:00

我说的数据缺失就是原来我的本来是'1',导入SAS后就是'.'

可是不应该是长度不够啊,后面几列都比它长都没有问题,而且问题是第一列中如果是40条记录可能就会有10条缺失

缺失的那一列数据在EXCEL中没有设定类型,一般应该就是数值型吧??

8
condor_gz 在职认证  发表于 2015-7-30 10:56:07
cfacfo 发表于 2007-8-15 14:16
我遇到过同样的问题,这主要是因为在读入数据的时候,SAS默认采用的是best.w格式,即自行判断采用最优格式, ...
十分赞同这位高手的思路和解决方法 我前两天碰巧也遇到了相同的问题——导入时超长字符时无缘无故的被截断了,试了一下图形化操作的解决方法,达到了异曲同工的效果,分享如下:
1.jpg
2.jpg
3.jpg
4.jpg
5.jpg
通过查看帮助得知,Number of guessing rows的含义为检测前N行的属性以其中的最长格式自动设置改列的格式,默认为20,如果想避免由于前面数据长度较小而影响到后面长度较长的字段被截断的问题,请将该N值调大即可。
已有 1 人评分论坛币 收起 理由
admin_kefu + 20 热心帮助其他会员

总评分: 论坛币 + 20   查看全部评分

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

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