楼主: tracyyang
1855 6

[原创博文] 急问小问题 [推广有奖]

  • 0关注
  • 0粉丝

已卖:31份资源

本科生

58%

还不是VIP/贵宾

-

威望
0
论坛币
1428 个
通用积分
0
学术水平
0 点
热心指数
1 点
信用等级
0 点
经验
1240 点
帖子
86
精华
0
在线时间
102 小时
注册时间
2007-3-22
最后登录
2016-8-10

楼主
tracyyang 发表于 2011-1-21 09:04:48 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
请问用什么方法能看到一个数据集有多少个变量?(应该是6000多个~)
二维码

扫码加我 拉你入群

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

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

关键词:小问题 什么方法 数据集 方法能

沙发
Isscaliu 发表于 2011-1-21 09:06:07
try to use SQL
It was the best of times, it was the worst of times.

藤椅
tracyyang 发表于 2011-1-21 09:10:14
Still no idea? sorry

板凳
soporaeternus 发表于 2011-1-21 09:23:18
  1. /*TEST*/
  2. data a;
  3.         array aa a1-a10000;
  4.         do over aa;
  5.                 aa=1;
  6.         end;
  7. run;

  8. /*1*/
  9. proc contents data=a out=b(keep=varnum);run;quit;
  10. proc sql;
  11.         select max(varnum) from b;
  12. quit;

  13. /*2*/
  14. data _null_;
  15.         set a;
  16.         array _t _all_;
  17.         dim=dim(_t);
  18.         put dim=;
  19.         stop;
  20. run;

  21. /*3*/
  22. proc sql;
  23.         select max(varnum) from sashelp.vcolumn
  24.         where upcase(libname)='WORK' and upcase(memname)='A';
  25. quit;
复制代码
库很多的话,3会很慢
1直接读表信息
2生成PDV结构后计算

希望对你有帮助
已有 1 人评分学术水平 热心指数 收起 理由
peijiamei + 2 + 3 观点有启发

总评分: 学术水平 + 2  热心指数 + 3   查看全部评分

Let them be hard, but never unjust

报纸
elek.me 发表于 2011-1-21 15:16:58
soporaeternus 发表于 2011-1-21 09:23
  1. /*TEST*/
  2. data a;
  3.         array aa a1-a10000;
  4.         do over aa;
  5.                 aa=1;
  6.         end;
  7. run;

  8. /*1*/
  9. proc contents data=a out=b(keep=varnum);run;quit;
  10. proc sql;
  11.         select max(varnum) from b;
  12. quit;

  13. /*2*/
  14. data _null_;
  15.         set a;
  16.         array _t _all_;
  17.         dim=dim(_t);
  18.         put dim=;
  19.         stop;
  20. run;

  21. /*3*/
  22. proc sql;
  23.         select max(varnum) from sashelp.vcolumn
  24.         where upcase(libname)='WORK' and upcase(memname)='A';
  25. quit;
复制代码
库很多的话,3会很慢
1直接读表信息
2生成PDV结构后计算

希望对你有帮助
  1. /*2*/
  2. data _null_;
  3.         set a;
  4.         array _t _all_;
  5.         dim=dim(_t);
  6.         put dim=;
  7.         stop;
  8. run;
复制代码

如果数值型和字符型变量都有的话,这会报错的。
已有 1 人评分热心指数 收起 理由
peijiamei + 2 我很赞同

总评分: 热心指数 + 2   查看全部评分

我的博客: http://elek.me/sas
联系我: http://about.me/elek

地板
soporaeternus 发表于 2011-1-21 15:37:12
If you use _ALL_, all the previously defined variables must be of the same type
嗯,我错了
  1. data _null_;
  2.         set a;
  3.         array _c _character_ ;
  4.                 array _n _numeric_;
  5.         dim=sum(dim(_c),dim(_n));
  6.         put dim=;
  7.         stop;
  8. run;
复制代码
已有 1 人评分学术水平 热心指数 收起 理由
peijiamei + 1 + 1 观点有启发

总评分: 学术水平 + 1  热心指数 + 1   查看全部评分

Let them be hard, but never unjust

7
junuylia 发表于 2011-1-22 05:54:09
直接用
  1. proc contents data=yourdata;
  2. run;
复制代码
可以显示Dataset的基本情况和变量的数据类型等

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

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