楼主: wulawula_8523
2398 4

sas dataset里如何只对格式是日期的变量做修改 [推广有奖]

  • 0关注
  • 0粉丝

大专生

23%

还不是VIP/贵宾

-

威望
0
论坛币
44 个
通用积分
0
学术水平
1 点
热心指数
1 点
信用等级
1 点
经验
1004 点
帖子
61
精华
0
在线时间
29 小时
注册时间
2013-4-4
最后登录
2019-9-12

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
有一个dataset,大概500来个变量,准备对里面所有的日期变量做修改(完整的日期改到只保留年份),其他东西都不变动。
目前想到的方法是用array,但需要手打大量的变量名,因为这些日期变量名称不是连续的,所以不能用 array var{*} a1-a10,另外位置也不是连续的,不能用 array var{*} aa--cc 的方法。

想请问有没有简单一些的方法可以修改日期变量并且不需要手动一个个打变量名?谢谢!!!
二维码

扫码加我 拉你入群

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

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

关键词:dataset DataS Data Set TAS 如何

沙发
crazygoing 发表于 2014-7-10 15:37:31 |只看作者 |坛友微信交流群
我能想到的是用proc contents语句把你的数据集变量名给显示出来,然后复制到excel里,按照变量属性排序,这样日期型就在一起了,然后把日期型变量名列表复制到你的array 数组里处理。

使用道具

藤椅
wulawula_8523 发表于 2014-7-11 07:59:01 |只看作者 |坛友微信交流群
crazygoing 发表于 2014-7-10 15:37
我能想到的是用proc contents语句把你的数据集变量名给显示出来,然后复制到excel里,按照变量属性排序,这 ...
谢谢!已经解决了,跟你的方法类似不过我作了点修改。
大概就是先用proc contents 把变量名和格式输出,然后用 proc sql; select varname into: var_list 的方法创建一个叫 var_list 的 macro 变量,最后在用array的时候引用这个变量。这样就完全不用自己手动打变量名了~

使用道具

板凳
crazygoing 发表于 2014-7-11 11:40:03 |只看作者 |坛友微信交流群
wulawula_8523 发表于 2014-7-11 07:59
谢谢!已经解决了,跟你的方法类似不过我作了点修改。
大概就是先用proc contents 把变量名和格式输出, ...
嗯,好办法。  

使用道具

报纸
yongyitian 发表于 2014-7-11 12:16:29 |只看作者 |坛友微信交流群
  1. * try this, if you don't want to change the variable names;
  2. * but you may need to remove the format of the date variables;

  3. data want;
  4.     set have;
  5.     array nums{*} _numeric_;
  6.     if  1960<=year(nums[i])<2015  and  1<= month(nums[i]) <=12 then do;
  7.       * your code here such as;
  8.        nums[i] = year[nums[i]);
  9.     end;
  10.    drop i;
  11. run;
复制代码

使用道具

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

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

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

GMT+8, 2024-11-5 14:42