楼主: DABUSHAN
1834 8

创建系列表字段属性 [推广有奖]

  • 0关注
  • 0粉丝

大专生

35%

还不是VIP/贵宾

-

威望
0
论坛币
100 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
2 点
经验
722 点
帖子
33
精华
0
在线时间
46 小时
注册时间
2013-6-19
最后登录
2014-12-4

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币

有数据集W1,W2,W3….. 每个数据集都含有相同的变量名Var1-VarN, 但每个数据集中相同变量名长度可能各异,现需要创建一个空的数据集W0,也包含变量名Var1-VarN,且W0中想同变量Var的长度是所有变量中最长的。

倘若只有一个数据集W1,则可以直接采用如下:

Create table W0 like W1

得到,当数据集W有多个时,想知道有什么好的办法得到…..

希望大神们能留个测试代码….

二维码

扫码加我 拉你入群

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

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

关键词:Create Table creat SOSO ABLE Create

沙发
wwang111 发表于 2013-10-21 14:08:31 |只看作者 |坛友微信交流群
假设w1,w2,w3...都在work里,并且除了这些没有其他数据集以‘W’开头:

proc sql;
create table test1 as
select name, max(length) as len
from dictionary.columns
where libname='WORK' and memname eqt 'W'
group by 1
;
quit;

data _null_;
set test1 end=last;
length code $ 1000;
retain code;
if _n_=1 then code='data w0;length '!!strip(name)!!' $'!!strip(put(len,best.));
else code=trim(code)!!' '!!strip(name)!!' $'!!strip(put(len,best.));
if last then do;
code=trim(code)!!'; run;';
call execute(code);
end;
run;
只有一个罗纳尔多

使用道具

藤椅
DABUSHAN 发表于 2013-10-21 14:44:13 |只看作者 |坛友微信交流群
wwang111 发表于 2013-10-21 14:08
假设w1,w2,w3...都在work里,并且除了这些没有其他数据集以‘W’开头:

proc sql;
谢谢@wwang111
里面还有个问题就是 字段有数值型的也有字符型的  不全都是字符定义的了  
会不会复杂了点o

使用道具

板凳
wwang111 发表于 2013-10-21 14:56:05 |只看作者 |坛友微信交流群
DABUSHAN 发表于 2013-10-21 14:44
谢谢@wwang111
里面还有个问题就是 字段有数值型的也有字符型的  不全都是字符定义的了  
会不会复杂了 ...
proc sql;
create table test1 as
select name,type, max(length) as len
from dictionary.columns
where libname='WORK' and memname eqt 'W'
group by 1,2
;
quit;

data _null_;
set test1 end=last;
length code $ 1000;
retain code;
if _n_=1 then do;
if type=:'c' then code='data w0;length '!!strip(name)!!' $'!!strip(put(len,best.));
else code='data w0;length '!!strip(name)!!' '!!strip(put(len,best.));
end;
else do;
if type=:'c' then code=trim(code)!!''!!strip(name)!!' $'!!strip(put(len,best.));
else code=trim(code)!!''!!strip(name)!!' '!!strip(put(len,best.));;
end;
if last then do;
code=trim(code)!!'; run;';
call execute(code);
end;
run;
只有一个罗纳尔多

使用道具

报纸
DABUSHAN 发表于 2013-10-21 15:41:15 |只看作者 |坛友微信交流群
wwang111 发表于 2013-10-21 14:56
proc sql;
create table test1 as
select name,type, max(length) as len
请问下  wwang111   你的
type=:'c'
中的:号是什么意思呀?

使用道具

地板
wwang111 发表于 2013-10-21 15:42:51 |只看作者 |坛友微信交流群
DABUSHAN 发表于 2013-10-21 15:41
请问下  wwang111   你的
type=:'c'
中的:号是什么意思呀?
就是type的值以'c'开头,这里就相当于type='char'
只有一个罗纳尔多

使用道具

7
DABUSHAN 发表于 2013-10-21 15:58:09 |只看作者 |坛友微信交流群
wwang111 发表于 2013-10-21 15:42
就是type的值以'c'开头,这里就相当于type='char'
哦!懂了 谢谢哈

使用道具

8
420948492 发表于 2013-10-24 21:54:07 |只看作者 |坛友微信交流群
思路很好
有人的地方就有江湖

使用道具

9
mingfeng07 学生认证  发表于 2013-10-24 21:58:43 |只看作者 |坛友微信交流群
学习一下
欢迎扫一扫我头像关注, 不定期分享SAS技术知识。

使用道具

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

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

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

GMT+8, 2024-11-13 14:15