全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
3664 2
2015-06-09
悬赏 10 个论坛币 已解决
例如我有一个数据集X, 它有变量vara,varb,varc. 我需要一个数据集Y, 它有变量varm, varn,varl. 再假设变量间的关系为:varm=vara+1,varn=sum(vara,varb), varl=varc.

于是一般来说写程序如下:

data Y (drop= vara varb varc);
set data X;

varm=vara+1;
varn=sum(vara,varb);
varl=varc;

run;

但是当数据集X,Y均有非常多个变量的时候,程序第一行中,用一个个drop变量的方式,非常费事又容易出错。

所以我的问题是:我要基于数据集X创造一个数据集Y,而数据集Y中只要保留新的变量,删去原本属于数据集X的所有变量有什么效率更高的方法吗?谢谢!

最佳答案

WUPUQU 查看完整内容

1.利用proc contents得到包含X数据集的变量名的字段name的新数据集 2.利用proc sql将该字段name的变量名赋值给宏变量X_name 3.然后就可以在创建数据集Y时直接使用宏变量:drop= &X_name.
二维码

扫码加我 拉你入群

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

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

全部回复
2015-6-9 21:02:15
1.利用proc contents得到包含X数据集的变量名的字段name的新数据集
2.利用proc sql将该字段name的变量名赋值给宏变量X_name
3.然后就可以在创建数据集Y时直接使用宏变量:drop= &X_name.
二维码

扫码加我 拉你入群

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

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

2015-6-10 14:42:39
求高手啊~或者各位有啥想法也可以说出来讨论讨论~
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群