楼主: ryuuzt
7502 13

[原创博文] 求助:如何在数据集里更改变量长度 [推广有奖]

  • 9关注
  • 8粉丝

教授

69%

还不是VIP/贵宾

-

TA的文库  其他...

Gauss Related

Math Related

R Related

威望
0
论坛币
19170 个
通用积分
119.9188
学术水平
51 点
热心指数
76 点
信用等级
34 点
经验
81668 点
帖子
1684
精华
0
在线时间
1442 小时
注册时间
2010-6-16
最后登录
2024-4-28

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
求助:我有两个数据集,各1.4T左右。现在想把两个表根据ID、日期合并起来。我把临时文件夹改到了一个200G左右的空盘你。然后用sql去查找、合并。但是每次都会出现SAS utility*** disk  out of source,然后就会中止。我看了一下原始数据,如果我把其中的一下变量的长度缩短的话,会把原始数据的size压缩三分之二左右。如果用data步去改变的话,还算会出现上面的信息。有没有什么方法直接在不把数据读出来,直接改变变量的长度?
先表示感谢!
二维码

扫码加我 拉你入群

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

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

关键词:数据集 Utility Source data步 原始数据 source 文件夹 如何 信息 左右

回帖推荐

YueweiLiu 发表于7楼  查看完整内容

数据集变量的长度、类型等一旦生成,没法再修改,不过可以迂回一下,如:建议楼主: 先读取你数据集的结构,这个应该没有问题,或者读取少量数据,比如前1000条,根据变量内容,调整变量长度,建立新的空数据集,然后用proc expand来将原始数据添加到新数据集里,记得用force选项,这样会自动截断多余的空格,达到你所说的压缩目的。个人愚见,供参考。

本帖被以下文库推荐

沙发
nuomin 发表于 2012-8-30 19:25:27 |只看作者 |坛友微信交流群
先把数据进行分割。比如按照一个ID或同一时间进行分割,这样匹配数据就是在分割后的数据内进行。系统开销下降很多,估计就可以了。SAS没用过,数据库能处理1.4t的数据吧?我也没试过这么大的。

使用道具

藤椅
nuomin 发表于 2012-8-30 19:26:11 |只看作者 |坛友微信交流群
再帮顶!

使用道具

板凳
ryuuzt 发表于 2012-8-30 21:31:08 |只看作者 |坛友微信交流群
nuomin 发表于 2012-8-30 19:26
再帮顶!
谢谢,我尝试过分割。我的电脑资源有限,比较困难。

使用道具

报纸
nuomin 发表于 2012-8-30 21:44:57 |只看作者 |坛友微信交流群
用数据库一次读取一万条,这样的操作也不能执行吗?

使用道具

地板
ryuuzt 发表于 2012-8-31 08:40:39 |只看作者 |坛友微信交流群
nuomin 发表于 2012-8-30 21:44
用数据库一次读取一万条,这样的操作也不能执行吗?
呵呵,这个可以。不过都搞完的话,估计一个月也作不完。

使用道具

7
YueweiLiu 发表于 2012-8-31 11:28:18 |只看作者 |坛友微信交流群
数据集变量的长度、类型等一旦生成,没法再修改,不过可以迂回一下,如:
  1. data have;
  2.         input char $8.;
  3. cards;
  4. wuhan
  5. beijing
  6. ;

  7. data have;
  8.         set have;
  9.         length char1 $ 10;
  10.         char1=char;
  11.         drop char;
  12.         rename char1=char;
  13. run;
复制代码
建议楼主:

先读取你数据集的结构,这个应该没有问题,或者读取少量数据,比如前1000条,根据变量内容,调整变量长度,建立新的空数据集,然后用proc expand来将原始数据添加到新数据集里,记得用force选项,这样会自动截断多余的空格,达到你所说的压缩目的。个人愚见,供参考。
已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 3 精彩帖子

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

使用道具

8
ryuuzt 发表于 2012-9-1 09:51:45 |只看作者 |坛友微信交流群
YueweiLiu 发表于 2012-8-31 11:28
数据集变量的长度、类型等一旦生成,没法再修改,不过可以迂回一下,如:建议楼主:

先读取你数据集的结 ...
非常感谢。
我最后用的就是您的这个方法,跑了快3天了,还在跑。每次刷新看新文件的大小,感觉快结束了。大约省了三分之一左右。
再次感谢。

使用道具

9
YueweiLiu 发表于 2012-9-5 21:21:42 |只看作者 |坛友微信交流群
ryuuzt 发表于 2012-9-1 09:51
非常感谢。
我最后用的就是您的这个方法,跑了快3天了,还在跑。每次刷新看新文件的大小,感觉快结束了。 ...
呵呵。 很高兴能帮上点儿小忙。

使用道具

10
ryuuzt 发表于 2012-9-8 11:33:05 |只看作者 |坛友微信交流群
YueweiLiu 发表于 2012-9-5 21:21
呵呵。 很高兴能帮上点儿小忙。
一直在看到你有积极地帮助新手,真的很感谢。
上论坛也很久了,热心的人真的很多。看着别人的帖子也是一种学习过程。每次都想回复谢谢两字,又怕论坛通知说是无聊灌水。其实真心不是灌水,只是想对那些积极回答别人问题的人说声谢谢。

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-28 18:04